微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

DELETE TOP 语句的正确语法是什么?

如何解决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 举报,一经查实,本站将立刻删除。