0
id name role test
------ -------- -------- --------
1 Name 1 Role 1 1,2
2 Name 10 Role 10 3
3 Name 100 Role 100 4
4 Name 11 Role 11 5,6
SET @val_find := '';
SELECT @val_find := test FROM `users` WHERE `users`.`role`= 'role 11';
SELECT @val_find AS test;
生成以下的输出:5,6逗号分隔的外键
它的工作很好,当我写:
SELECT * FROM `users` WHERE `users`.`id` IN (5,6)
为什么不是在这种情况下工作吗?
SET @val_find := '';
SELECT @val_find := test FROM `users` WHERE `users`.`role`= 'role 11';
SELECT @val_find AS test;
SELECT * FROM `users` WHERE `users`.`id` IN (SELECT @val_find)
感谢@Gordon Linoff其工作正常,但我只是想知道,为什么在那种情况下didn't工作?做u有什么想法?而其结果类似于搜索所需的结果(5,6) – 2014-11-05 06:36:40
由于您的查询是'users.id IN('5,6')',它与'users.id ='5,6'' 。 – 2014-11-05 12:42:22