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

MySQL सशर्त रूप से आईडी की श्वेतसूची के आधार पर पंक्तियों के बूलियन कॉलम मान अपडेट करें

क्या आप केस स्टेटमेंट में "ELSE" करना नहीं भूले?

UPDATE my_table
    SET field = CASE
        WHEN id IN (/* true ids */) THEN TRUE
        WHEN id IN (/* false ids */) THEN FALSE
        ELSE field=field 
    END

ईएलएसई के बिना, मुझे लगता है कि मूल्यांकन श्रृंखला आखिरी WHEN पर रुक जाती है और उस अपडेट को निष्पादित करती है। साथ ही, आप उन पंक्तियों को सीमित नहीं कर रहे हैं जिन्हें आप अद्यतन करने का प्रयास कर रहे हैं; यदि आप ईएलएसई नहीं करते हैं तो आपको कम से कम अपडेट को केवल अपनी इच्छित पंक्तियों को अपडेट करने के लिए बताना चाहिए, न कि सभी पंक्तियों को (जैसा कि आप कर रहे हैं)। नीचे WHERE क्लॉज देखें:

  UPDATE my_table
        SET field = CASE
            WHEN id IN (/* true ids */) THEN TRUE
            WHEN id IN (/* false ids */) THEN FALSE
        END
  WHERE id in (true ids + false_ids)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. WEEKDAY () उदाहरण – MySQL

  2. PHP में परिणाम सरणी लाने के लिए मैं पीडीओ का उपयोग कैसे कर सकता हूं?

  3. अपरिभाषित सूचकांक नाम

  4. पीएचपी पीडीओ मैसकल इंसर्ट परफॉर्मेंस

  5. PHP में किसी अन्य वर्ग से MySQLi का उपयोग करना