Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL вмъкване само ако дадено условие е вярно

Можете да използвате WHERE клауза за това. Преобразувайте вашите INSERT VALUES във INSERT SELECT и добавете WHERE клауза.

Например,

INSERT INTO fields (field_name, control_type_id, needs_approval)
SELECT
'Array Photos', 3, 0
WHERE Condition;

Ако условието е вярно, то ще вмъкне реда. Ако условието е невярно, SELECT ще върне нула редове и по този начин INSERT ще вмъкне нула редове.

Ако заявката по-горе не се изпълнява поради синтактична грешка, можете, както спомена @spencer7593, да добавите FROM DUAL .

INSERT INTO fields (field_name, control_type_id, needs_approval)
SELECT
'Array Photos', 3, 0
FROM DUAL
WHERE Condition;

DUAL таблицата е по същество фиктивна таблица, която има предвидимо съдържание и може да се разчита, че винаги има поне един ред .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Избирате ли всички колони, които започват с XXX, като използвате заместващ знак?

  2. Как да съхранявате данни в база данни в LARAVEL 5.2

  3. Дублиране на бази данни от Oracle към mysql

  4. Фатална грешка:Неуловена грешка:Извикване на недефинирана функция mysql_pconnect()

  5. SQL заявка за получаване на стойности на колони, които съответстват на MAX стойност на друга колона?