我想从数据库中获取随机行,但是使用某些内容限制它。
例如,表的定义:
id | content | tags
查询为:SELECT * FROM tbl ORDER BY RAND() LIMIT 1
。
标签部分如下:tag1, tag2, tag42
。因此,例如,我想要一个随机行,其中tag42
或tag2
内有tags
或SELECT * FROM tbl ORDER BY RAND() WHERE tags LIKE '%tag42%' OR '%tags2%' LIMIT 1
。
一些伪代码:
{{1}}。
答案 0 :(得分:3)
您的伪代码几乎是正确的,除非您的条款顺序错误:WHERE
出现在ORDER BY
之前
SELECT * FROM tbl WHERE tags LIKE '%tag42%' OR '%tags2%' ORDER BY RAND() LIMIT 1
请参阅documentation for SELECT
syntax,再也不会出错