sql >> Databasteknik >  >> RDS >> Mysql

MySQL Insert if Condition

Du kan göra något så här:

insert into cats_rel(cat_id, post_id)
    select 11, 32
    where not exists (select 1 from cats_rel where cat_id = 11 and post_id = 32);

EDIT:

Hoppsan. Det ovanstående fungerar inte i MySQL eftersom det saknas en from klausul (fungerar dock i många andra databaser). I alla fall brukar jag skriva detta genom att lägga värdena i en underfråga, så de visas bara en gång i frågan:

insert into cats_rel(cat_id, post_id)
    select toinsert.cat_id, toinsert.post_id
    from (select 11 as cat_id, 32 as post_id) toinsert
    where not exists (select 1
                      from cats_rel cr
                      where cr.cat_id = toinsert.cat_id and cr.post_id = toinsert.post_id
                     );


  1. Hur skriver man en inre fråga som returnerar det senaste meddelandet för en given användare?

  2. PHP rekursiv funktion för att ta bort alla underordnade noder orsakar stackoverflow

  3. mysql beställ varchar-fält som heltal

  4. Dynamiskt konstruera MySQL-kod för att skapa en trigger