【问题标题】:SQL to select a single random row with a where conditionSQL 选择具有 where 条件的单个随机行
【发布时间】:2013-11-18 18:05:54
【问题描述】:

我试图从满足 SQL 中 where 子句的所有行中获取单个随机行。我正在使用以下 SQL,但得到了相应的错误。

SELECT * FROM xyz WHERE (long='0' AND lat='0') ORDER BY RAND() LIMIT 1

错误: #1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'long='0' AND lat='0') ORDER BY RAND() LIMIT 1' 附近使用正确的语法

【问题讨论】:

  • Long 是 SQL 中的关键字。你不能这样使用它。

标签: mysql sql random row


【解决方案1】:
    SELECT *
  FROM (  SELECT *
            FROM xyz
           WHERE (`long`='0' AND lat='0')
        ORDER BY DBMS_RANDOM.VALUE) LIMIT 1

【讨论】:

    【解决方案2】:

    LONG 是保留字

    SELECT * FROM xyz WHERE (`long`='0' AND lat='0') ORDER BY RAND() LIMIT 1
    

    【讨论】:

      猜你喜欢
      • 2020-07-11
      • 2021-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-11
      • 2013-11-14
      相关资源
      最近更新 更多