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,但我希望列表中不存在完整列表。

我在 set SELECT user_id FROM user 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' )它只忽略第一个值,所以请帮忙

4

2 回答 2

3
SELECT user_id
FROM user
WHERE user_id NOT 
IN ( 1,2,3,4,7,8,21,42,12 );
于 2012-04-09T06:33:53.660 回答
1

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

给定 user_id = 7:

SELECT user_id
FROM user
WHERE user_id NOT 
IN ( 5 )
于 2012-04-09T06:16:53.547 回答