2012-04-09 61 views
1

我有这样使用的不是命令查找集

SELECT user_id 
FROM user 
WHERE user_id NOT 
IN (
FIND_IN_SET(user.user_id, '1,2,3,4,7,8,21,42,12') 
) 

但它不是工作正常,当系列是继续那么只有它打印ID不存在 前查询。因为1,2,3,4是连续的,所以这个ID只在我的结果中不存在,但是我想要列表中没有完整的列表。

我打电话找到一套功能 选择USER_ID 从用户 其中USER_ID不 IN( FIND_IN_SET(user.user_id,BLOCK_ID(1)) ) 它给了我逗号分隔值的字符串当我把这个字符串 EX其中USER_ID不 IN( “1,2,3,4,5,7,8,9” ) 它忽略只有第一个值 所以请帮助

+1

没有必要找到设置在这里只用没有,请参阅下面的参考 – 2012-04-09 06:34:42

+1

我的回答@ MURTUZA007我觉得你有你的答案,为什么你不选择你的答案了,是你需要的东西更多或什么? – 2012-04-09 07:42:20

+0

不,我没有得到答案我已编辑我的问题,请检查并给我一个反馈 – unknown007 2012-04-09 07:48:18

回答

2
SELECT user_id 
FROM user 
WHERE user_id NOT 
IN (1,2,3,4,7,8,21,42,12); 
1

我米不知道你明白什么FIND_IN_SET确实 - 此函数为您提供搜索值的位置(或索引)。所以,如果user_id是= 7,它将返回5,这基本上让你的SQL函数没用,因为你比较索引单个用户ID和将等同于:

假设为user_id = 7:

SELECT user_id 
FROM user 
WHERE user_id NOT 
IN (5) 
+0

,但我怎么能满足上述条件 – unknown007 2012-04-09 06:23:07

+1

给这个镜头:'SELECT USER_ID FROM user WHERE user_id NOT IN( 1,2,3,4,7,8,21,42,12);''应该给你所有的user_id,除了列表中的那些。如果我误解了你的问题,并且你想继续这个系列,那么编程就会更具挑战性,并且你无法单独使用SQL来完成它...... – 2012-04-09 06:27:33