sql >> Databáze >  >> RDS >> Mysql

MySQL podmíněně AKTUALIZUJTE booleovské hodnoty sloupců řádků na základě whitelistu ID

Nezapomněli jste ve výpisu případu napsat „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

Bez ELSE předpokládám, že se hodnotící řetězec zastaví na posledním KDYŽ a provede aktualizaci. Také neomezujete řádky, které se pokoušíte aktualizovat; pokud neuděláte ELSE, měli byste alespoň říct aktualizaci, aby aktualizovala pouze řádky, které chcete, a ne všechny řádky (jak to děláte). Podívejte se na klauzuli WHERE níže:

  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. Jak Access komunikuje se zdroji dat ODBC? Část 5

  2. 2 způsoby, jak odstranit duplicitní řádky v Oracle

  3. Jak používat JAKÝKOLI / NĚKTERÝ logický operátor v SQL Server - SQL Server / TSQL výukový program, část 127

  4. mySQL dotaz pro výběr dětí