То, что я хочу достичь, это, Если количество строк, возвращаемых запросом:MySQL случае выполнения запроса на основе результата, возвращаемых из запроса
SELECT count(*) FROM `games` WHERE cateID=2 AND active=1
равно 0, я хочу запустить вставив запрос:
INSERT INTO games(cateID ,time,users,active)
VALUES ('2', '1', '0', '1')
Я попытался использовать случай, как это:
SELECT CASE WHEN SELECT count(*) FROM `games` WHERE cateID=2 AND active=1)=0
THEN INSERT INTO games(cateID ,time,users,active)
VALUES ('2', '1', '0', '1')
END
Но он возвращает ошибку а, с:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT count(*) FROM `games` WHERE cateID=2 AND active=1)=0
THEN INSERT INTO' at line 1
Примечание: Оба запроса при выполнении отдельно выполняются без каких-либо ошибок. Как это достичь?
EDIT:
попытался Также это с IF,
SELECT if(count(*)==0,INSERT INTO games(cateID ,time,users,active)
VALUES ('2', '1', '0', '1')) FROM `games` WHERE cateID=2 AND active=1
Тем не менее дает ту же ошибку. EDIT 2: По Предложенное комментарий,
INSERT INTO games(cateID ,time,users,active)
select '2','2','0','1'
where (SELECT count(*) FROM `games` WHERE cateID=2 AND active=1) <= 0
Тем не менее дает ошибку.
возможно дубликат [MySQL INSERT IF (обычаем, если заявления)] (http://stackoverflow.com/questions/6854996/mysql-insert-if-custom-if-statements) –
сделал попробовать. Посмотрите на редактирование 2. – kritya
http://stackoverflow.com/questions/18421905/mysql-insert-if-condition – d4Rk