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

MySQL - Актуализиране на множество стойности и WHERE IN

Търсите ли case изявление?

update files
    set name = (case when id = 1 then 'untitled'
                     when id = 2 then 'untitled2'
                     when id = 3 then 'untitled3'
                     when id = 4 then 'untitled4'
                end)
    where id IN (1, 2, 3, 4);

В MySQL можете да направите това и с join :

update files f join
       (select 1 as id, 'untitled' as newname union all
        select 2, 'untitled2' union all
        select 3, 'untitled3' union all
        select 4, 'untitled4'
       ) n
       on f.id = n.id
    f.name = new.newname;

Ако имате много стойности, можете да създадете таблица със стойностите поотделно и след това да извършите актуализацията.



  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. AUTO_INCREMENT и LAST_INSERT_ID

  3. Има ли mysql JDBC, който ще спазва fetchSize?

  4. Внедряване на релационни бази данни на MySQL в Ubuntu 12.04 (Precise Pangolin)

  5. SQLSTATE[23000]:Нарушение на ограничението за интегритет:1452 Не може да се добави или актуализира дъщерен ред:ограничение на външния ключ е неуспешно