如果找到几行,如何只删除一行?

Mar*_*jus 7 sql postgresql

我有一张看起来像这样的桌子。

CREATE TABLE tshirt
(
  id serial,
  sku character varying(255) NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

我只想删除带有我想要的 sku 的一行,但DELETE FROM tshirt WHERE sku='%s'; 会删除带有该 sku 的所有条目。我怎样才能做到这一点 ?

小智 9

此 SQL Server DELETE TOP 示例将从员工表中删除last_name 为“Anderson”的第一条记录。如果employees 表中还有last_name 为“Anderson”的其他记录,则DELETE TOP 语句不会删除它们。

DELETE TOP(1)
FROM employees
WHERE last_name = 'Anderson';
Run Code Online (Sandbox Code Playgroud)


Tro*_*ydm 8

不是最好的方法,但是,你可以这样做:

DELETE FROM tshirt
WHERE id IN (
   SELECT id FROM
   tshirt WHERE sku='%s' LIMIT 1
)
Run Code Online (Sandbox Code Playgroud)