gpt4 book ai didi

mysql - 使用具有相同结果的另一个查询

转载 作者:行者123 更新时间:2023-11-29 09:40:40 25 4
gpt4 key购买 nike

我有疑问:

SELECT Name, Surname, Telephone, PersonID FROM Client WHERE Telephone = 
(SELECT MAX(Telephone) FROM Client) OR PersonID = (SELECT MAX(PersonID)
FROM Client);

结果:

| Name   | Surname  | Telephone | PersonID    |

| Tyler | Henry | 998778781 | 38568215856 |

| Brooke | Thornton | 617196573 | 99412132661 |

还有什么其他查询会给我相同的结果?我必须在优化方面比较两个查询。

最佳答案

您可以使用UNION 优化:

SELECT Name, Surname, Telephone, PersonID
FROM Client
WHERE Telephone = (SELECT MAX(Telephone) FROM Client)
UNION
SELECT Name, Surname, Telephone, PersonID
FROM Client
WHERE PersonID = (SELECT MAX(PersonID) FROM Client)

如果所选列的子集是 UNIQUE,则查询将返回相同的结果。

给定 (Telephone)(PersonID) 上的索引,查询在大表上也应该更快。原因是 MySQL 无法为每个表和(子)查询使用多个索引。将查询拆分为两个子查询将允许引擎使用这两个索引。

关于mysql - 使用具有相同结果的另一个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56716191/

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