我创建了一个包含属性id,name,email的表。现在我只想在name的出现次数小于3时插入一个值,即name< 3。由于不能在insert语句中使用where子句,还有其他方法可以做到吗?
我使用group by来了解给定值的出现。现在,我被卡住了。你能帮我吗?
答案 0 :(得分:0)
您可以插入SELECT
查询的结果,并且可以使用WHERE
子句。
INSERT INTO yourTable (name, email)
SELECT 'newName', 'newEmail'
FROM DUAL
WHERE EXISTS (
SELECT 1
FROM yourTable
WHERE name = 'newName'
GROUP BY name
HAVING COUNT(*) < 3)
DUAL
是一个虚拟表,可以在动态生成数据的查询中使用。