MySQL删除哪里find_in_set不起作用

时间:2018-07-11 13:32:22

标签: mysql stored-procedures

我有一个包含多个部分的MySql存储过程。该过程接收一个INT“ inId”和一个名为“ inIgnoreLogTypes”的VARCHAR(500)参数,该参数是一个用逗号分隔的数字列表。

SQL的第一部分如下:

DECLARE affectedNumbers text;

SELECT GROUP_CONCAT(am.Numbers) INTO affectedNumbers FROM Users am WHERE am.userID = inId;

我需要这样做,因为稍后将在整个相当大的存储过程中使用变量“ affectedNumbers”,因此出于性能考虑,我不想每次都需要执行“ IN(选择...)”操作在列表中。

我检查了一下,变量“ affectedNumbers”正确地用逗号分隔了。 下一部分是这个(发生问题的地方):

DELETE FROM UserLogs WHERE
FIND_IN_SET(User_Number, affectedNumbers) AND
NOT FIND_IN_SET(LogType, inIgnoreLogTypes);

以上语句不执行任何操作,经过数小时的搜索,“为什么”我找不到答案...也许是因为“ affcetedNumbers”是TEXT而“ User_Number”是INT?还是因为“ LogType”是INT而“ inIgnoreLogTypes”是VARCHAR?

我检查了两个集合,它们是逗号分隔的整数...

1 个答案:

答案 0 :(得分:0)

发现了问题!我必须使用这样的东西:

myurl.com/parent -> it works

奇怪,因为没有错误。...现在可以了。