Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wstaw MySQL, jeśli warunek

Możesz zrobić coś takiego:

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

EDYCJA:

Ups. Powyższe nie działa w MySQL, ponieważ brakuje w nim from klauzula (działa jednak w wielu innych bazach danych). W każdym razie zwykle piszę to, umieszczając wartości w podzapytaniu, więc pojawiają się one w zapytaniu tylko raz:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jedna tabela Mysql z wieloma kolumnami TIMESTAMP

  2. Tabela przestawna zwraca tylko 1 wiersz

  3. Uzyskaj dostęp do wartości zmiennych JavaScript w php do przechowywania w mysql

  4. Zmień kolejność wierszy rekordów bazy danych za pomocą interfejsu użytkownika za pomocą php

  5. Zapisywanie plików jako blob w bazie danych ajax php pdo