使用条件将值插入表中

时间:2018-03-13 23:22:05

标签: mysql

我创建了一个包含属性id,name,email的表。现在我只想在name的出现次数小于3时插入一个值,即name< 3。由于不能在insert语句中使用where子句,还有其他方法可以做到吗?

我使用group by来了解给定值的出现。现在,我被卡住了。你能帮我吗?

1 个答案:

答案 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是一个虚拟表,可以在动态生成数据的查询中使用。