我试图用字符串测试strcmp()函数 在此SQL语句中包含随机电子邮件地址:
INSERT IGNORE INTO possible_duplicate_email
-> (human_id, email_address_1, email_address_2, entry_date)
-> VALUES(LAST_INSERT_ID(), 'bobyfischer@mymail.com',
'bobbyfischer@mymail.com')
-> WHERE ABS( STRCMP('bobbyrobin@mymail.com', 'bobyrobin@mymail.com') ) = 1;
然后我收到此错误消息:
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 'WHERE ABS( STRCMP('bobbyrobin@mymail.com',
'bobyrobin@mymail.com') ) = 1' at line 4
我已经从mysql-5.7参考手册中读取了strcmp()文档 并尝试了一个简单的SELECT语句,看看strcmp()返回了一个数字 值为-1,0,1,它确实如此,我已经包含了IGNORE选项 到SQL语句以便继续进行错误。有人可以向我解释为什么在WHERE子句中运行strcmp()时会出现此错误吗?
答案 0 :(得分:0)
感谢Paul T.,答案是:
INSERT语句没有WHERE子句,除非执行INSERT ... SELECT语句,否则查询的SELECT部分可以使用WHERE子句。