gpt4 book ai didi

mysql - 替代 IN()

转载 作者:行者123 更新时间:2023-12-01 00:46:00 25 4
gpt4 key购买 nike

我得到了一个包含列的表格|编号 | zip |。一个或多个条目属于一个 postNumber。我需要为每个 postNumber 请求最新条目。

SELECT `dienstbuch`.`id` , `dienstbuch`.`postNumber`
FROM `dienstbuch`
WHERE `dienstbuch`.`id`
IN (
SELECT max( `dienstbuch`.`id` )
FROM dienstbuch
GROUP BY `dienstbuch`.`postNumber`
)
ORDER BY `id` DESC
LIMIT 2000,10

在具有许多条目的表上使用时,查询需要很长时间。

我怎样才能改进它?

最佳答案

听起来好像您可以在一个直接查询中请求最大 ID

SELECT max( `dienstbuch`.`id` ) maxId, postNumber
FROM dienstbuch
GROUP BY `dienstbuch`.`postNumber`

但是如果你要检索多个字段那么它需要一个子查询

SELECT `dienstbuch`.`id` , `dienstbuch`.`postNumber`, dienstbuch.field1, dienstbuch.field2
FROM `dienstbuch`
JOIN
(SELECT max( `dienstbuch`.`id` ) id, postNumber
FROM dienstbuch
GROUP BY `dienstbuch`.`postNumber`
) maxID
on dienstbuch.id=maxID.id and dienstbuch.postNumber=maxID.postNumber
ORDER BY dienstbuch.`id` DESC
LIMIT 2000,10

关于mysql - 替代 IN(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22002219/

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