在set中使用not in命令

时间:2012-04-09 06:10:29

标签: mysql

我有这样的查询

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只在我的结果中不存在,但我希望列表中没有完整的列表。

我在set中调用函数 SELECT user_id     来自用户     WHERE user_id NOT     IN(      FIND_IN_SET(user.user_id,block_id(1))     ) 它给了我逗号分隔值的字符串,当我传递字符串时 ex WHERE user_id NOT     IN(      '1,2,3,4,5,7,8,9'     ) 它只忽略第一个值 所以请帮忙

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

我不确定你理解FIND_IN_SET的作用 - 此函数为您提供搜索值的位置(或索引)。因此,如果user_id = 7,它将返回5.这基本上会使您的SQL函数无用,因为您将单个用户ID与索引进行比较,它将等同于:

给定user_id = 7:

SELECT user_id
FROM user
WHERE user_id NOT 
IN ( 5 )