Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL Inserisci se Condizione

Puoi fare qualcosa del genere:

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

MODIFICA:

Ops. Quello sopra non funziona in MySQL perché manca un from clausola (funziona in molti altri database, però). In ogni caso, di solito lo scrivo inserendo i valori in una sottoquery, quindi vengono visualizzati nella query solo una volta:

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