gpt4 book ai didi

sqlite - Sqlite 子查询的问题

转载 作者:行者123 更新时间:2023-12-03 19:35:47 27 4
gpt4 key购买 nike

我的 CustomTags 表可能有一系列“临时”记录,其中 Tag_ID 为 0,并且 Tag_Number 将有一些五位数的值。

定期,我想清理我的 Sqlite 表以删除这些临时值。

例如,我可能有:

Tag_ID      Tag_Number
0 12345
0 67890
0 45678
1 12345
2 67890

在这种情况下,我想删除前两条记录,因为它们与实际的 Tag_ID 1 和 2 重复。但我不想删除第三条记录,因为它还没有被复制。

我尝试了许多不同类型的子查询,但我就是无法让它工作。这是我尝试的最后一件事,但我的数据库客户端提示未知语法错误。 (我尝试过使用和不使用 AS 作为别名)
DELETE FROM CustomTags t1
WHERE t1.Tag_ID = 0
AND (SELECT COUNT(*) FROM CustomTags t2 WHERE t1.Tag_Number = t2.Tag_Number) > 1

谁能提供一些见解?谢谢

最佳答案

有很多选项,但最简单的可能是使用 EXISTS ;

DELETE FROM CustomTags
WHERE Tag_ID = 0
AND EXISTS(
SELECT 1 FROM CustomTags c
WHERE c.Tag_ID <> 0 AND c.Tag_Number = CustomTags.Tag_Number
)

An SQLfiddle to test with .

...或 NOT IN ...
DELETE FROM CustomTags
WHERE Tag_ID = 0
AND Tag_Number IN (
SELECT Tag_Number FROM CustomTags WHERE Tag_ID <> 0
)

Another SQLfiddle .

关于sqlite - Sqlite 子查询的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35738627/

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