如果通过对另一个表的查询找到它们,我正在尝试从一个表中选择 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
,但它返回的 Ids 不在集合中:
SELECT Id
FROM myitems2
WHERE LOCATE(Id, @MyList) > 0;
预期结果:
41
42
退货
1
2
4
5
9
41
42
如何修复我的查询?