MySQLのfind_in_set()
機能:
SELECT
*
FROM
your_table
WHERE
NOT FIND_IN_SET(User.user_name, @valid_users);
これを機能させるには、カンマ区切りのリストに引用符を含めないでください(ユーザー名に実際に引用符が含まれている場合を除く)。また、スペースを埋めないでください。
SET @valid_users := 'admin,jrock,kmicka,First Last';
「NOT IN
の変数がなぜであるかに関する質問に直接答えるため フィルタ作業」、それは@valid_users
によるものです は文字列として扱われ、IN()
に渡すと 、単一の文字列として扱われています(つまり、セット/リストではありません)。 FIND_IN_SET()
を使用 、@valid_users
の文字列を処理します カンマで区切られたセット/リストとして使用し、それに応じて使用します。