Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Variabel MYSQL IN klausa

Anda akan ingin melihat find_in_set() fungsi:

SELECT
    *
FROM
    your_table
WHERE
    NOT FIND_IN_SET(User.user_name, @valid_users);

Agar ini berfungsi, daftar yang dipisahkan koma tidak boleh berisi tanda kutip (kecuali nama pengguna Anda benar-benar berisi tanda kutip) dan tidak boleh diisi dengan spasi:

SET @valid_users := 'admin,jrock,kmicka,First Last';

Contoh SqlFiddle

Untuk langsung menjawab pertanyaan Anda tentang "mengapa variabel dalam NOT IN filter work", itu karena @valid_users sedang diperlakukan sebagai string dan ketika Anda meneruskannya ke IN() , itu diperlakukan sebagai string tunggal (yaitu bukan set/daftar). Dengan FIND_IN_SET() , ia memperlakukan string dalam @valid_users sebagai set/daftar yang dipisahkan koma dan menggunakannya sebagaimana mestinya.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mendapatkan kredensial layanan untuk mesin virtual layanan yang dibuat di IBM Bluemix tanpa mengikat mesin virtual ke aplikasi di Bluemix?

  2. Memanggil skrip php menggunakan C# (Unity)

  3. Saya tidak bisa menjalankan bundler, terus mendapatkan kesalahan

  4. Bekerja dengan pointer file pada csv

  5. apakah ada batasan ukuran file saat membuat file csv menggunakan php dan mysql?