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 は結果に表示されないだけですが、完全なリストがリストに表示されないようにします。

私は関数を検索で呼び出しています 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 を返します。単一のユーザー ID をインデックスと比較しているため、これは基本的に SQL 関数を役に立たなくし、次のようになります。

user_id = 7 の場合:

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