sql >> Database >  >> RDS >> Mysql

MySQL invoegen indien voorwaarde

Je kunt zoiets als dit doen:

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);

BEWERKEN:

Oeps. Dat bovenstaande werkt niet in MySQL omdat er een from . ontbreekt clausule (werkt echter in veel andere databases). In ieder geval schrijf ik dit meestal door de waarden in een subquery te plaatsen, zodat ze maar één keer in de query verschijnen:

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. MySQL start niet op XAMPP-server

  2. #1062 - Dubbele invoer '' voor sleutel 'unieke_id' bij het toevoegen van UNIEKE SLEUTEL (MySQL)

  3. Hoe kan ik voor elke letter in een string met SQL van hoofdletter veranderen?

  4. MySQL-query om best verkopende producten te krijgen