gpt4 book ai didi

php - SQL插入行如果不存在

转载 作者:行者123 更新时间:2023-11-29 04:55:51 26 4
gpt4 key购买 nike

我是 mySQL 的新手,请多多包涵。

我有一个一直在增长的数组,假设现在它有 4 个项目。我需要 sql 来搜索表并为数组中的每个项目插入一个新行,但前提是它是一个新项目(意味着它还没有被插入)。表中有 5 列,行中的每一项都需要是一个变量,这样我才能传递动态数据。

我知道这还有很长的路要走,但我现在拥有的是这样的东西。

$array_count = array(1,2,3,4);
$var1 = 'value 1';
$var2 = 'value 2';
$var3 = 'value 3';
$var4 = 'value 4';
$var5 = 'value 5';
$sql = "INSERT INTO membership_levels VALUES ('".$var1."', '".$var2."', '".$var3."', '".$var4."', '".$var5."')";

最佳答案

Mysql - 重复键

如果你的数据库是 MySql,你可以像 Brad Christie 写的那样使用 Insert On Duplicate .如果您只想在它们都是相同的值时插入,则需要在 5 列上有一个主键。

您的 $sql 将更改为:

$sql = "INSERT INTO membership_levels(a,b,c,d) VALUES VALUES ('".$var1."', '".$var2."', '".$var3."', '".$var4."', '".$var5."')
ON DUPLICATE KEY UPDATE a=VALUES(a), b=VALUES(b), c = VALUES(c), d = VALUES (d);"

Mysql - 替换

您还可以使用 Replace key word .如果该行存在,它将为您删除它并插入新的。

$sql = "REPLACE INTO membership_levels VALUES ('".$var1."', '".$var2."', '".$var3."', '".$var4."', '".$var5."')";

微软数据库

如果您的数据库是 MsSql(Sql 服务器),则它有 2 个查询:

IF EXISTS (SELECT * FROM Table1 WHERE Column1='SomeValue')
UPDATE Table1 SET (...) WHERE Column1='SomeValue'
ELSE
INSERT INTO Table1 VALUES (...)"

如果 SQL Server 最好使用存储过程。

关于php - SQL插入行如果不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6668847/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com