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

MySql 码拜 8年前 (2016-07-12) 1085次浏览
本人想把“查询随机数语句”放在“随机数”那个位子,不行吗?那有没有好的替代方法,实现一次执行就能得到结果。

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

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

10

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

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明LIMIT 的参数不能用查询语句表示吗
喜欢 (0)
[1034331897@qq.com]
分享 (0)