Mysql
 sql >> база данни >  >> RDS >> Mysql

MYSQL UPDATE SET в същата колона, но с множество WHERE клаузи

Нещо подобно трябва да работи за вас:

UPDATE CustomerDetails_COPY
    SET Category_ID = CASE Category_ID
        WHEN 2 THEN 10 
        WHEN 3 THEN 9
        WHEN 4 THEN 12
        WHEN 5 THEN 11
    END
WHERE Category_ID IN (2,3,4,5)

Като алтернатива, както предложи Саймън, можете да направите това, за да спестите от въвеждане на стойностите два пъти:

UPDATE CustomerDetails_COPY
    SET Category_ID = CASE Category_ID
        WHEN 2 THEN 10 
        WHEN 3 THEN 9
        WHEN 4 THEN 12
        WHEN 5 THEN 11
        ELSE Category_ID
    END

Източник:http://www.karlrixon.co.uk/writing/update-multiple-rows-with-different-values-and-a-single-sql-query/



  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:#1075 - Неправилна дефиниция на таблица; автоматично инкремент спрямо друг ключ?

  2. F# грешка 'грешка FS0039:Пространството от имена или модулът 'MySql' не е дефиниран'?

  3. Свържете се с MySQL база данни с C# като не-root потребител?

  4. Как да структурирам SQL заявка, за да намеря обект, който е родител на два конкретни други обекта?

  5. (доставчик:Named Pipes Provider, грешка:40 - Не можа да се отвори връзка към SQL Server)