我想从数据库中获取随机行,但要限制使用某些内容。
例如,表的定义:
id | content | tags
查询是: SELECT * FROM tbl ORDER BY RAND() LIMIT 1 .
SELECT * FROM tbl ORDER BY RAND() LIMIT 1
标记部分看起来像: tag1, tag2, tag42 。因此,例如,我想要从具有 tag42 或 tag2 在…内 tags .
tag1, tag2, tag42
tag42
tag2
tags
一些伪代码:
SELECT * FROM tbl ORDER BY RAND() WHERE tags LIKE '%tag42%' OR '%tags2%' LIMIT 1 .
SELECT * FROM tbl ORDER BY RAND() WHERE tags LIKE '%tag42%' OR '%tags2%' LIMIT 1
您的伪代码几乎是正确的,只是子句顺序有误: WHERE 在之前 ORDER BY
WHERE
ORDER BY
SELECT * FROM tbl WHERE tags LIKE '%tag42%' OR '%tags2%' ORDER BY RAND() LIMIT 1
请参阅 documentation for SELECT syntax ,永远不要再犯错误
SELECT