$randNo = mt_rand(0,$ProductsCount);
$sql0 = "SELECT sku FROM catalog_product_flat_1 LIMIT ". $randNo . ",10";
$data2=$connection->query($sql2);
$result2=$data2->fetch();
我试图从我的数据库中获得随机SKU (200k产品),长度为13个字符(产品的30-40%),所以我考虑选择10个产品并获得具有13个字符的产品,我如何从这个选择中选择13个字符?还有其他更好的方法吗?我需要最快的速度
试试这样做:
首先,将$ProductsCount
设置为:
select count(*)
from catalog_product_flat_1
where length(sku) = 13;
那么做:
$randNo = mt_rand(0,$ProductsCount);
$sql0 = "SELECT sku FROM catalog_product_flat_1 WHERE length(sku) = 13 LIMIT ". $randNo . ",1";
$data2=$connection->query($sql2);
$result2=$data2->fetch();
这应该比排序更快。
如果我正确理解了你的问题,请尝试:
$sql0 = "SELECT sku FROM catalog_product_flat_1 where LENGTH(sku) = 13 ORDER BY RAND() LIMIT 1";
但请参阅以下更多可能具有更好性能的解决方案:https://stackoverflow.com/a/23568354/2517689
我想我覆盖了@Barranka的编辑来修复我的RANDOM()到RAND()。谢谢你的编辑