插入表格,但避免多列重复

时间:2019-10-11 13:55:29

标签: php mysql pdo

如果表格尚未包含这些值,我想插入表格。

这是我的桌子

ID | Col1 | Col2 | Col3 | Col4

我的表包含以下数据:

0 | “ a1” | “ a2” | “ a3” | “ a4” |

1 | “ b1” | “ b2” | “ b3” | “ b4” |

2 | “ c1” | “ c2” | “ c3” | “ c4” |

我不允许插入以下输入:

3 | “ b1” | “ b2” | “ b3” | “ d4” |

但是请允许以下内容:

3 | “ a1” | “ b2” | “ c3” | “ d4” |

我尝试了以下

INSERT INTO my_table (Col1, Col2, Col3, Col4) SELECT * FROM (SELECT :val1, :val2, :val3, :val4) as tmp WHERE NOT EXISTS (SELECT 1 FROM my_table WHERE Col1=:val1 AND Col2=:val2 AND Col3=:Val3)

除非:val1 ==:val2,否则此方法工作正常。

是否有更好的方法插入并避免重复?

2 个答案:

答案 0 :(得分:0)

您可以通过组合unique constraint/primary key来插入唯一记录来创建(Col1, Col2, Col3)

答案 1 :(得分:0)

您可以使用

  

插入信息

因此它将忽略表中已经存在的记录。

  

替换https://dev.mysql.com/doc/refman/5.5/en/replace.html

替换现有记录

相关问题