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

zhou_Tian 2016-03-02 03:08:39
我想把查询随机数的语句放在随机数那个位子,不行吗?有没有好的替代方法,实现一次执行就得到结果。

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)

...全文
136 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhou_Tian 2016-03-03
  • 打赏
  • 举报
回复
引用 4 楼 ACMAIN_CHM 的回复:
不能,只能用PREPARE来拼接字符串然后执行。
感谢狼头版主大大的回复,我决定采用rand的 方式来获取随机数。
zhou_Tian 2016-03-03
  • 打赏
  • 举报
回复
引用 3 楼 yupeigu 的回复:
[quote=引用 2 楼 zhou_Tian 的回复:] [quote=引用 1 楼 yupeigu 的回复:] mysql不允许在limit中使用变量、函数等。 改变一下思路。 要么用动态语句。 要么,就先order by 随机数 limit 5
感谢版主大人的回复,你的建议我没看懂。 先group by 随机数 limit 5什么意思啊。 [/quote] 是order by,就是说既然limit里没办法放随机数,那么就用order by 后面随机数,先进行随机排序,然后取前5条[/quote] 感谢版主大大的回复,这下我明白了。
ACMAIN_CHM 2016-03-02
  • 打赏
  • 举报
回复
不能,只能用PREPARE来拼接字符串然后执行。
zhou_Tian 2016-03-02
  • 打赏
  • 举报
回复
引用 1 楼 yupeigu 的回复:
mysql不允许在limit中使用变量、函数等。 改变一下思路。 要么用动态语句。 要么,就先order by 随机数 limit 5
感谢版主大人的回复,你的建议我没看懂。 先group by 随机数 limit 5什么意思啊。
LongRui888 2016-03-02
  • 打赏
  • 举报
回复
引用 2 楼 zhou_Tian 的回复:
[quote=引用 1 楼 yupeigu 的回复:] mysql不允许在limit中使用变量、函数等。 改变一下思路。 要么用动态语句。 要么,就先order by 随机数 limit 5
感谢版主大人的回复,你的建议我没看懂。 先group by 随机数 limit 5什么意思啊。 [/quote] 是order by,就是说既然limit里没办法放随机数,那么就用order by 后面随机数,先进行随机排序,然后取前5条
LongRui888 2016-03-02
  • 打赏
  • 举报
回复
mysql不允许在limit中使用变量、函数等。 改变一下思路。 要么用动态语句。 要么,就先order by 随机数 limit 5

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧