随机排序和LIKE

时间:2013-03-11 19:04:59

标签: mysql sql-like

我想从数据库中获取随机行,但是使用某些内容限制它。

例如,表的定义:

id | content | tags

查询为:SELECT * FROM tbl ORDER BY RAND() LIMIT 1

标签部分如下:tag1, tag2, tag42。因此,例如,我想要一个随机行,其中tag42tag2内有tagsSELECT * FROM tbl ORDER BY RAND() WHERE tags LIKE '%tag42%' OR '%tags2%' LIMIT 1

一些伪代码:

{{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,再也不会出错