我试图做的是低于其给予语法错误,请帮助已存在COUNT(*)
DELETE FROM table
WHERE col1 = 2
AND EXISTS (
SELECT COUNT(*)
FROM table
WHERE col1 = 3
) > 2 ;
我需要做删除只有当COUT大于2
我试图做的是低于其给予语法错误,请帮助已存在COUNT(*)
DELETE FROM table
WHERE col1 = 2
AND EXISTS (
SELECT COUNT(*)
FROM table
WHERE col1 = 3
) > 2 ;
我需要做删除只有当COUT大于2
where
有两个逻辑条件:一个exists
和一个> 2
。删除其中的一个,如:
DELETE table
WHERE col1 = 2
AND
(
SELECT COUNT(*)
FROM table
WHERE col1 = 3
) > 2
以下是无意义... EXISTS (...) > 2
。
你可能只是错过了EXISTS
?
目前还不清楚你实际正在做什么,对我们来说理解无效的语法并不比SQL服务器更容易。
HAVING子句可以让你基于计数筛选结果:
SELECT COUNT(*)
FROM table
WHERE col1 = 3
HAVING COUNT(*) > 2
但它似乎正试图从一个表,我会用做删除重复的字里行间:
DELETE FROM table
WHERE (id, col1) NOT IN
(SELECT
id,
MAX(col1)
FROM table
GROUP BY id
);