Code Bye

LIMIT 参数不能用查询语句表示吗

本人想把查询随机数的语句放在随机数那个位子,不行吗?有没有好的替代方法,实现一次执行就得到结果。
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

引用 2 楼 zhou_Tian 的回复:
Quote: 引用 1 楼 yupeigu 的回复:

mysql不允许在limit中使用变量、函数等。
改变一下思路。
要么用动态语句。
要么,就先order by 随机数 limit 5

感谢版主大人的回复,你的建议本人没看懂。
先group by  随机数 limit 5什么意思啊。

是order by,就是说既然limit里没办法放随机数,那么就用order by 后面随机数,先进行随机排序,然后取前5条

10

不能,只能用PREPARE来拼接字符串然后执行。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明LIMIT 参数不能用查询语句表示吗