MySQL Проблема с вставкой строки с определенными условиями - PullRequest
0 голосов
/ 10 июня 2011

У меня проблема с вставкой строки в таблицу MySQL, когда таблица полностью пуста. Я использую этот запрос:

INSERT IGNORE INTO test (id, amount) 
SELECT 6, 50 FROM test WHERE NOT EXISTS 
(SELECT 1 FROM test WHERE amount >= 50 AND id = 6) LIMIT 1

Работает нормально, когда в таблице есть хотя бы одна запись, какими бы ни были данные в столбцах. Не работает, если таблица полностью пуста.

Как правило, я хочу вставить строку, если не существует строки с таким же идентификатором и равной или большей суммой.

Я тоже пытался с COUNT, все та же проблема. Есть ли другой способ сделать это?

1 Ответ

1 голос
/ 10 июня 2011

Я думаю, что единственное, что не так с этим, - это вторая строка, удалите FROM test .. Вы не можете select 6, 50 from test .. 6 и 50 не являются столбцами в тесте, и у теста нет записей.Попробуйте это так:

INSERT IGNORE INTO test (id, amount) 
SELECT * from (select 6, 50) as a 
WHERE NOT EXISTS (SELECT 1 FROM test 
                  WHERE amount >= 50 AND id = 6)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...