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

JEŚLI NIE ISTNIEJE NIE DZIAŁA

MySQL nie zezwala na if logiki, chyba że znajdujesz się w bloku programowania (procedura składowana, wyzwalacz lub funkcja).

Na szczęście możesz zrobić to samo z WHERE logika:

INSERT INTO user 
    SELECT 'Rutvij', 'python', 25
    FROM DUAL
    WHERE NOT EXISTS (SELECT 1 FROM user WHERE name = 'Rutvij' AND lang = 'python')
    UNION ALL
    SELECT 'Kanzaria', 'python', 25
    FROM DUAL
    WHERE EXISTS (SELECT 1 FROM user WHERE name = 'Rutvij' AND lang = 'python');

MySQL powinien przetworzyć SELECT przed INSERT , więc należy wstawić tylko jeden wiersz.

Lub możesz to zrobić jako dwa INSERT s ale w odwrotnej kolejności:

INSERT INTO user 
    SELECT 'Kanzaria', 'python', 25
    FROM DUAL
    WHERE EXISTS (SELECT 1 FROM user WHERE name = 'Rutvij' AND lang = 'python');

INSERT INTO user 
    SELECT 'Rutvij', 'python', 25
    FROM DUAL
    WHERE NOT EXISTS (SELECT 1 FROM user WHERE name = 'Rutvij' AND lang = 'python');


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wyświetlić ostatnie zapytania wykonane na MySQL?

  2. MySQL - CONCAT dwa pola i użyj ich w klauzuli WHERE

  3. Funkcja Lead i Lag w Mysql

  4. Zapytanie SQL, aby znaleźć liczbę wspólnych znajomych w tabeli osoby, pary znajomych

  5. Eksportuj tabelę mysql do CSV za pomocą kodu PHP