我有这样的查询
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' ) 它只忽略第一个值 所以请帮忙
答案 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 )