插入表中,但避免对多列重复[重复]

问题描述 投票:0回答:2

此问题已经在这里有了答案:

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

这是我的桌子

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,否则此方法正常。

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

php mysql pdo
2个回答
0
投票

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


0
投票

您可以使用

© www.soinside.com 2019 - 2024. All rights reserved.