SQL插入忽略不起作用

时间:2014-02-10 05:56:02

标签: php mysql sql

我很抱歉是的,我知道之前有人问过,但是当我看到帖子时,看起来我正在做的一切都没事。但是它没有用。

所以我想只在数据库中不存在$ domain的情况下才进行sql插入,我不介意多个域是否具有相同的IP。

这是我当前的sql查询,它不会向数据库添加任何域和IP。

mysql_query("INSERT INTO domains (domain, ip) VALUES ('$domain', '$ip') WHERE NOT EXISTS (SELECT FROM domains where domain='$domain')");

2 个答案:

答案 0 :(得分:0)

您还需要将SELECT应用于域

INSERT INTO domains (domain, ip)
SELECT * FROM
(SELECT ('$domain', '$ip')) AS tmp
WHERE NOT EXISTS (
    SELECT * FROM domains where domain='$domain'
);

答案 1 :(得分:0)

这是一个很长的解决方案,但对于没有UNIQUE属性的列很有用。

INSERT INTO your_table (your_column)
SELECT 'your_value' FROM (SELECT 1) t
WHERE NOT EXISTS
    (
        SELECT your_same_column
        FROM you_same_table
        WHERE your_same_column = 'your_same_value'
    );

获得解决方案here

但是如果您的列有UNIQUE属性,那么您可以使用这个简短的方法。

INSERT IGNORE INTO your_table(your_column) VALUES('your_value');
相关问题