目前,我只是将 SQL 列设置为 UNIQUE 来阻止重复条目,但现在如果另一列不同,我需要允许重复条目。我不确定执行此操作的最佳方法。本质上我想做如下的事情,但它只是多次插入相同的值。
// $link is being outputted from a external RSS feed //
// $name and $location are account holder names //
$name = 'Bob';
$sql = "SELECT link FROM `table` WHERE name='$name'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$db_link = $row['link'];
if($link == $db_link){
// Pass and do nothing
}else{
// Insert into database if 3 values do not exist already
$sql2 = "INSERT INTO `table` (link, name) VALUES ('$link','$name')";
if (mysqli_query($conn, $sql2)) {
echo "record created successfully";
} else {
//echo "Error: " . $sql2 . "<br>" . mysqli_error($conn);
}
}
}
}
所以基本上我试图避免显示每个帐户持有人的重复项,但不同的帐户持有人可以在数据库中拥有相同的链接。抱歉,如果这令人困惑.. 如果名称不同,则允许链接重复。 我看过类似的问题,但不明白所解释的方法以及它们是否是我正在寻找的正确解决方案。谢谢!
最佳答案
您想要在多个列上使用唯一索引
CREATE UNIQUE INDEX index_name ON table_name (link,name);
或
ALTER TABLE table_name ADD UNIQUE (link, name);
关于php - 如果某些值尚不存在,则尝试使用 PHP 和 mySQL 将 UNIQUE 值插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57468436/