2016-07-22 140 views
0

我有一个简单的数据库查询,由于某些原因我找不出来。尝试删除行时出现MySQL语法错误

DELETE * FROM Wishlist WHERE (id, uid) VALUES ("18","34i274o1y24ouy1o4");

这可能是一般只是错误的语法。谈到数据库时,我的技能很低。有任何想法吗?试图删除一行。

在此先感谢!

回答

2

它看起来像你试图使用INSERT语法做了删除。如果你想删除的记录与标准,你给试试这个:

DELETE 
FROM Wishlist 
WHERE id = '18' AND uid = '34i274o1y24ouy1o4' 
+0

'DELETE * FROM收藏WHERE ID = “18” 和uid = “34i274o1y24ouy1o4”;'抛出一个语法错误 – Josh

+0

什么错误?我只是改变了使用单引号,但这不应该。 –

+0

'错误:ER_PARSE_ERROR:您的SQL语法中有错误;检查与您的MySQL服务器版本相对应的手册,以便在第1行'* FROM Wishlist WHERE id =“18”AND uid =“34i274o1y24ouy1o4”'附近使用正确的语法' – Josh

1

你应该使用IN

DELETE FROM Wishlist WHERE (id, uid) IN ('18','34i274o1y24ouy1o4'); 

或者只是使用AND

DELETE FROM Wishlist WHERE id = '18' AND uid = '34i274o1y24ouy1o4'; 
1

除了使用IN关键字其他的答案,
DELETE FROM Wishlist where id='18' and uid = '34i274o1y24ouy1o4'也适用。
请注意,在DELETE操作中不需要星号。

如果id是主键,where id = '18'没有uid应该足够了。
另外,您可能需要考虑使用INT类型将id设置为自动增量列。查询速度更快,您可以摆脱where id = 18等引号。

1
DELETE FROM Wishlist WHERE id = '18' AND uid = '34i274o1y24ouy1o4'; 
相关问题