gpt4 book ai didi

mysql - SQL随机查询添加where条件

转载 作者:行者123 更新时间:2023-11-29 00:06:05 26 4
gpt4 key购买 nike

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

目前我从所有行中随机选择一行到 table 中,我需要更改它以便我只能从 table 中的行中获取随机行> 其中列: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;

关于mysql - SQL随机查询添加where条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27406801/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com