如何解决DELETE TOP 语句的正确语法是什么?
我只想删除“Trader_inventory”表的 1 行,其中“item_id”为 14,“Trader_id”为 1。 这是我试过的代码:
DELETE TOP 1
FROM Trader_inventory
WHERE item_id = 14 AND Trader_id = 1;
我也试过这个,看看它是否只适用于 1 个条件:
DELETE TOP 1
FROM Trader_inventory
WHERE item_id = 14;
我也尝试在“TOP (1)”处使用括号
sql 在 '1 FROM Trader_inventory WHERE item_id = 14' 处显示语法错误
我无法解释为什么它不起作用。我现在正在努力寻找解决方案 2 个小时。我希望有一个人可以帮助我。 我看到有些人将他们的表名写在 [] 括号中,但这对我不起作用。 sql 将其标记为错误。
解决方法
在 MySQL 中,您将使用:
DELETE FROM trader_inventory
WHERE item_id = 14 AND trader_id = 1
LIMIT 1;
Here 是一个 dbfiddle。
MySQL 中没有 SELECT TOP
。如果您使用的是 SQL Server(如使用 TOP
所建议的那样),您可以使用子查询(或 CTE):
DELETE ti
FROM (SELECT TOP (1) ti.*
FROM trader_inventory ti
WHERE item_id = 14 AND trader_id = 1
) ti;
注意:SELECT TOP
通常与 ORDER BY
一起使用,因此结果是一致的。这将删除任意行。如果您在具有相同行的表上运行它,则可以选择不同的行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。