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

MySQL Indsæt hvis betingelse

Du kan gøre sådan noget:

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:

Ups. Ovenstående virker ikke i MySQL, fordi det mangler en from klausul (virker dog i mange andre databaser). Under alle omstændigheder plejer jeg at skrive dette ved at sætte værdierne i en underforespørgsel, så de kun vises i forespørgslen én gang:

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. Hvordan beder man javascript vente på, at mysql tildeler værdi til php-variabel?

  2. Forespørgsel til at vælge flere data sammen med gennemsnitsværdier mellem et bestemt tidspunkt ved hjælp af Postgres

  3. Cursor i Mysql har andre rettigheder end bruger?

  4. Hvorfor er innodbs VIS TABEL STATUS så upålidelig?