gpt4 book ai didi

mysql - 如果是另一个查询的结果,则查询选择 Id

转载 作者:行者123 更新时间:2023-11-28 23:31:32 25 4
gpt4 key购买 nike

我正在尝试从表中选择 ID,如果它们是通过对另一个表的查询找到的(我的最终目标是从第二个表中删除第一个查询中具有 ID 的行)。这是我的尝试:

SELECT @MyList:=GROUP_CONCAT(Id SEPARATOR ', ') AS MyList
FROM myitems
WHERE MyString IS NULL OR MyString = '';

所以 @MyList 包含 '41, 42, 49, 51'

基于 FIND_IN_SET 的查询只返回一行

SELECT Id
FROM myitems2
WHERE FIND_IN_SET(Id, @MyList) > 0;

预期结果:

41
42

返回

41

如果我使用 IN,我会得到相同的结果:

SELECT Id
FROM myitems2
WHERE Id IN (@MyList);

我还尝试了基于LOCATE 的查询,但它返回的 ID 不在集合中:

SELECT Id
FROM myitems2
WHERE LOCATE(Id, @MyList) > 0;

预期结果:

41
42

返回

1
2
4
5
9
41
42

如何解决我的查询?

最佳答案

FIND_IN_SET 不起作用,因为逗号后有空格。

替换:

GROUP_CONCAT(Id SEPARATOR ', ')

作者:

GROUP_CONCAT(Id SEPARATOR ',')

或者你可以这样做:

SELECT Id
FROM myitems2
WHERE FIND_IN_SET(Id, replace(@MyList, ' ', ''));

关于mysql - 如果是另一个查询的结果,则查询选择 Id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37170112/

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