本人想把查询随机数的语句放在随机数那个位子,不行吗?有没有好的替代方法,实现一次执行就得到结果。
SELECT * FROM t_product WHERE c_sid IN ( SELECT c_id FROM (SELECT c_id FROM t_shops AS result1 WHERE c_ditclass=17 LIMIT 随机数,5 ) AS result2 ) GROUP BY c_sid #随机数查询语句:SELECT FLOOR(0+RAND()*(SELECT count(c_id) FROM t_shops WHERE c_ditclass=17)-1-0+1)
解决方案
30
是order by,就是说既然limit里没办法放随机数,那么就用order by 后面随机数,先进行随机排序,然后取前5条
10
不能,只能用PREPARE来拼接字符串然后执行。