gpt4 book ai didi

mysql - 使用 UNION 选择但限制每个子查询并接收不同的值

转载 作者:可可西里 更新时间:2023-11-01 06:51:34 27 4
gpt4 key购买 nike

我有一张表,想从一个订单中获取 15 个值,在另一个订单中获取 15 个值。目标是获得恰好 30 个不同的值。
这是我的代码:

 (SELECT * FROM table1 WHERE criteria ORDER BY views DESC LIMIT 15)  
UNION All
(SELECT * FROM table1 WHERE criteria ORDER BY date_upload DESC LIMIT 15)

我知道如何使用两个查询(使用 NOT IN )完成任务,但有没有办法在一个查询中完成?

最佳答案

如有必要,将“id”替换为您的主键名称:

(SELECT * FROM table1 WHERE criteria ORDER BY views DESC LIMIT 15)
UNION
(SELECT * FROM table1 WHERE criteria AND id NOT IN(SELECT id FROM table1 WHERE criteria LIMIT 15) ORDER BY date_upload DESC LIMIT 15)

这个查询:
- 选择按浏览量排序的前 15 条记录匹配条件
- 选择前 15 个匹配条件而不是在第一个 SELECT 中,并按 date_upload 排序

使用此查询,每次表 1 中有 30 条不同的记录时,您将确保获得 30 条记录。

关于mysql - 使用 UNION 选择但限制每个子查询并接收不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10584941/

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