Проблема проста, но кажется, что каждый раз я делаю что-то неправильно в синтаксисе mysql. Я хочу искать в таблице после поля String. Если это поле существует, я увеличим количество явлений. Если этого не существует, я добавлю новую строку. Я пытаюсь написать запрос, который я буду использовать с jdbc или hibernate. Я рассматриваю множество примеров на сайте, но я понимаю, что я делаю что-то неправильно в синтаксисе mysql.Как использовать условие IF в запросе mysql
For the table:
mysql> select * from phrase;
+----+---------------+-------------------+
| id | phrase_string | apparition_number |
+----+---------------+-------------------+
| 1 | phrase 1 | 2 |
| 2 | phrase 2 | 1 |
| 3 | phrase 3 | 5 |
| 4 | phrase 4 | 6 |
+----+---------------+-------------------+
4 rows in set (0.00 sec)
Я использую условие IF из учебника MYSQL: IF THEN search_condition statement_list [ELSEIF search_condition ТОГДА statement_list] ... [ELSE statement_list] END IF
Так что мой запрос выглядит следующим образом:
**mysql> IF SELECT * FROM phrase WHERE phrase_string="phrase 1" THEN
-> UPDATE phrase SET apparition_number=apparition_number+1
-> ELSE
-> INSERT INTO phrase VALUES(NULL,"phrase 1",1)
-> END IF;**
ERROR 1064 (42000): 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 'IF SELECT * FROM phrase WHERE phrase_string="
phrase 1" THEN
UPDATE phrase SET ap' at line 1
Может ли кто-нибудь сказать мне, где я ошибаюсь? Спасибо!
, что если предложение недействительно как часть выбора. просто напишите два утверждения один для обновления (с предложением where) и один для вставки (снова с где) – amdixon