代码之家  ›  专栏  ›  技术社区  ›  Max Frai

按随机和LIKE排序

  •  1
  • Max Frai  · 技术社区  · 13 年前

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

    例如,表的定义:

    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 回复  |  直到 13 年前
        1
  •  3
  •   Mchl    13 年前

    您的伪代码几乎是正确的,只是子句顺序有误: WHERE 在之前 ORDER BY

    SELECT * FROM tbl WHERE tags LIKE '%tag42%' OR '%tags2%' ORDER BY RAND() LIMIT 1
    

    请参阅 documentation for SELECT syntax ,永远不要再犯错误