【发布时间】:2014-12-06 22:19:38
【问题描述】:
如果选定的字符串与确定的字符串相似,则更新一个值。如果没有相似之处,则插入新行。
if EXISTS(SELECT * FROM spam WHERE levenshtein_ratio(text,'teststring') >= 50)
UPDATE spam SET num = num + 1 WHERE levenshtein_ratio(text,'teststring') >= 50
ELSE
INSERT INTO spam (text) VALUES ('teststring')
levenshtein_ratio 函数、更新行、插入新行和选择相似行都可以正常工作。问题是 if 语句有我无法修复的错误。
#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 'if EXISTS(SELECT * FROM spam WHERE levenshtein_ratio(text,'teststring') >= 50) 附近使用正确的语法 ' 在第 1 行
【问题讨论】:
-
你似乎在测试“something >= 50”是否存在...... MySQL 不明白。
-
如果 ELSE 逻辑仅适用于存储过程。然后你应该选择 SELECT COUNT(*) FROM .....
-
你最好检查
if的语法
标签: mysql if-statement insert