尝试删除行时出现MySQL语法错误
问题描述:
我有一个简单的数据库查询,由于某些原因我找不出来。尝试删除行时出现MySQL语法错误
DELETE * FROM Wishlist WHERE (id, uid) VALUES ("18","34i274o1y24ouy1o4");
这可能是一般只是错误的语法。谈到数据库时,我的技能很低。有任何想法吗?试图删除一行。
在此先感谢!
答
它看起来像你试图使用INSERT
语法做了删除。如果你想删除的记录与标准,你给试试这个:
DELETE
FROM Wishlist
WHERE id = '18' AND uid = '34i274o1y24ouy1o4'
答
你应该使用IN
:
DELETE FROM Wishlist WHERE (id, uid) IN ('18','34i274o1y24ouy1o4');
或者只是使用AND
:
DELETE FROM Wishlist WHERE id = '18' AND uid = '34i274o1y24ouy1o4';
答
除了使用IN关键字其他的答案,DELETE FROM Wishlist where id='18' and uid = '34i274o1y24ouy1o4'
也适用。
请注意,在DELETE操作中不需要星号。
如果id是主键,where id = '18'
没有uid应该足够了。
另外,您可能需要考虑使用INT类型将id设置为自动增量列。查询速度更快,您可以摆脱where id = 18
等引号。
答
DELETE FROM Wishlist WHERE id = '18' AND uid = '34i274o1y24ouy1o4';
'DELETE * FROM收藏WHERE ID = “18” 和uid = “34i274o1y24ouy1o4”;'抛出一个语法错误 – Josh
什么错误?我只是改变了使用单引号,但这不应该。 –
'错误:ER_PARSE_ERROR:您的SQL语法中有错误;检查与您的MySQL服务器版本相对应的手册,以便在第1行'* FROM Wishlist WHERE id =“18”AND uid =“34i274o1y24ouy1o4”'附近使用正确的语法' – Josh