Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

खंड में MYSQL चर

आप 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';

SqlFiddle उदाहरण

सीधे अपने प्रश्न का उत्तर देने के लिए "NOT IN . में एक वेरिएबल क्यों होगा? फ़िल्टर कार्य", ऐसा इसलिए है क्योंकि @valid_users एक स्ट्रिंग के रूप में माना जा रहा है और जब आप इसे IN() . पर पास करते हैं , इसे एकल स्ट्रिंग के रूप में माना जा रहा है (अर्थात सेट/सूची नहीं)। FIND_IN_SET() के साथ , यह स्ट्रिंग को @valid_users . में ट्रीट करता है अल्पविराम से अलग किए गए सेट/सूची के रूप में और तदनुसार इसका उपयोग करता है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में चालू माह का रिकॉर्ड कैसे प्राप्त करें

  2. मैं कैसे बता सकता हूं कि एक MySQL अद्यतन वास्तव में अद्यतन डेटा बनाम सफल हुआ था?

  3. आंतरायिक JDBC टूटी पाइप और लिंक विफलता

  4. तैयार बयान के साथ मुद्दा

  5. चालू सप्ताह के लिए आदेश तालिका से रिकॉर्ड खींचे