在SQL随机查询中添加where条件

布拉德

是否可以在下面的SQL查询中添加WHERE条件?

目前,我正在从所有行中选择一个随机行,table并且需要对其进行更改,以便仅从tablewhere列中的行中获取随机行type="1"

这是SQL查询:

SELECT *
  FROM table AS r1 JOIN
       (SELECT (RAND() *
                     (SELECT MAX(id)
                        FROM table)) AS id)
        AS r2
 WHERE r1.id >= r2.id
 ORDER BY r1.id ASC
 LIMIT 1;
戈登·利诺夫

是的,您可以添加条件。不过请务必小心,因为您可能没有任何匹配项:

SELECT *
FROM table r1 JOIN
     (SELECT (RAND() * (SELECT MAX(id) FROM table)) AS id
     ) r2
WHERE r1.type = 1 and r1.id >= r2.id
ORDER BY r1.id ASC
LIMIT 1;

这也可能对性能产生很大影响。为了提高性能,您需要在上建立索引table(type, id)另外,您也可以where在子查询中包含:

SELECT *
FROM table r1 JOIN
     (SELECT (RAND() * (SELECT MAX(id) FROM table WHERE type = 1)) AS id
     ) r2
WHERE r1.type = 1 and r1.id >= r2.id
ORDER BY r1.id ASC
LIMIT 1;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在SQL查询中添加条件

来自分类Dev

如何在SQL分页查询中的WHERE子句中添加其他条件

来自分类Dev

如何在SQLite查询的“文本”字段中添加WHERE条件?

来自分类Dev

使用php在sql查询中的where条件中传递数组

来自分类Dev

如何在SQL查询中添加不同的条件语句

来自分类Dev

如何在SQL查询中添加多个AND条件?

来自分类Dev

SQL:在单个查询中添加多个where子句

来自分类Dev

在基于IF语句的SQL查询中添加WHERE语句

来自分类Dev

SQL 查询中的条件

来自分类Dev

在 Oracle PL/SQL 中向 WHERE 子句添加条件

来自分类Dev

使用where代替在SQL查询的join子句中添加条件会更好吗?

来自分类Dev

使用where代替在SQL查询的join子句中添加条件会更好吗?

来自分类Dev

如何在joomla查询的where条件中添加两个ID?

来自分类Dev

使用where条件的SQL子查询

来自分类Dev

SQL 连接子查询 where 条件

来自分类Dev

基于多个where条件的SQL查询

来自分类Dev

每天在Android SQL中查询随机项目

来自分类Dev

sql查询中的条件所在

来自分类Dev

Hibernate中的条件SQL查询

来自分类Dev

在SQL查询中应用if条件

来自分类Dev

在SQL查询中编写条件

来自分类Dev

SQL查询中的WHERE子句

来自分类Dev

SQL 中的 WHERE 条件 (ORACLE)

来自分类Dev

在SQL查询中添加货币

来自分类Dev

使用WHERE条件,查询结果中列名

来自分类Dev

SQLite:从查询中删除多个WHERE条件

来自分类Dev

避免在子查询中重复WHERE条件

来自分类Dev

如何在查询中添加日期条件?

来自分类Dev

在LINQ查询中添加N个条件?