1
問題很簡單,但似乎每次我在mysql語法中做錯了什麼。 我想在字符串字段後的表中進行搜索。如果這個字段存在,我會增加apparition的數量。如果不存在,我會用它添加一個新行。 我想寫一個查詢,我將與jdbc或hibernate一起使用。 我在網站上看了很多例子,但我狡猾地說,我在MySQL語法中做了一些錯誤。如何在mysql查詢中使用IF條件
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 search_condition THEN STATEMENT_LIST [ELSEIF search_condition THEN 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
有人可以告訴我我錯了嗎? 謝謝!
如果子句作爲select的一部分無效。只需爲更新(使用where子句)編寫兩個語句,併爲插入寫入兩個語句(再次使用where) – amdixon