我有一个非常简单的脚本,可以导入邮政编码的CSV并在表格中用它创建一行。
我还有一列用于存储邮政编码在CSV文件中显示的total
次。
如果找到重复的邮政编码,是否可以增加列值?
因此,如果有2个 w1a 1aa 的实例,它会增加总列中的值。例如:
id | postcode | total
0 | w1a 1aa | 2
1 | g74 1bc | 1
2 | ml10 6qd | 1
非常感谢您对此的任何帮助。
表格
id | postcode | total
PHP:
// connect to db
$servername = "localhost";
$username = "";
$password = "";
$dbname = "postcodes";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
foreach($csv as $row) {
$postcode = $row[0];
$sql = 'INSERT INTO postcodes VALUES (NULL, "'.$postcode.'", 1)';
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
答案 0 :(得分:1)
MySQL允许你输入类似下面的内容(现在无法检查语法,但你会发现它在互联网上有很好的记录):
INSERT ... ON DUPLICATE KEY UPDATE...
这意味着,尝试将一行插入到具有特定列作为唯一键的表中,如果存在具有相同键值的行,则执行更新部分。
因此,如果您将列邮政编码定义为唯一索引,则上述结构将完全符合您的要求。
答案 1 :(得分:0)
您需要先选择一个选项来检查您要输入的邮政编码是否已经存在,如果是,请获取计数并根据该邮政编码进行更新。