我想要的
仅当<select class="custom_select" name="customSelect1" id="customSelect1">
<option value=''>Selected</option>
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
<select class="custom_select" name="customSelect2" id="customSelect2">
<option value=''>Selected</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
<select class="custom_select" name="customSelect3" id="customSelect3">
<option value=''>Selected</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
<button onclick='getSelected()'>Get Selected</button>
和REPLACE INTO
相同时,我才想column1
我的桌子。否则,即使column2
或column1
相同,也应将其插入。
我尝试的内容
我制作了column2
和column1
主键。
我的SQL语句...
column2
即使REPLACE INTO mytable (column1, column2, column3) VALUES (?, ?, ?)
或column1
中的一个相同,它也会替换而不是插入。
我试图搜索答案,但是我不知道正确的语言才能获得正确的结果。
编辑
我用..设置了主键。
column2
我的桌子。
我将ALTER TABLE PKweight DROP PRIMARY KEY, ADD PRIMARY KEY(id,season);
替换为REPLACE INTO
,但出现此错误...
INSERT INTO
这告诉我列PHP Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1' for key 'id' in
的一个重复项失败。
编辑2
PHP / MYSQL代码..
id
编辑3
除了foreach($teamO as $tm){
$stmt = "REPLACE INTO PKweight (id, season, name, toi, weight_toi, standing, rank) VALUES (?, ?, ?, ?, ?, ?, ?)";
$dbConnection->prepare($stmt)->execute(["$tm->id", "$tm->season", "$tm->name", "$tm->toi", "$tm->weight_toi", "$tm->standing", "$tm->rank"]);
}
和id
上的复合PRIMARY KEY之外,我还season
上有一个唯一索引,如上面phpmyadmin屏幕截图中的灰色键所示。我删除了。。
id
答案 0 :(得分:1)
我尝试按照您提到的相同方式进行操作,但是它是根据创建的约束(两列约束)对ID和名创建的约束进行替换和插入。
首先,我创建了一个表:
CREATE TABLE Sakila.ReplacePrac (
Studentid INT(6) ,
Firstname VARCHAR(20),
Lastname VARCHAR(30) ,
Gender CHAR(1),
Primary key(Studentid, Firstname)) ;
insert into ReplacePrac
select 1, 'Rob', 'Stark', 'M' union all
select 1, 'Ben', 'Stark', 'M' union all
select 2, 'Arya', 'Stark', 'F' union all
select 2, 'Tyrian', 'Lan', 'M' ;
当前表具有此数据:
# Studentid, Firstname, Lastname, Gender
1, Ben, Stark, M
1, Rob, Stark, M
2, Arya, Stark, F
2, Tyrian, Lan, M
我添加了Replace into子句,我认为只要ID和名匹配,它就会替换,不匹配(意味着它是“ AND”条件,而不是“ OR”)时插入
Replace into Replaceprac (StudentID, Firstname, Lastname, Gender)
Values('1', 'Jon', 'Snow', 'M'),
('1', 'Ben', 'Snow', 'M'),
('2', 'Sansa', 'Startk', 'F'),
('2', 'Tyrian', 'Ster', 'M')
只要ID和名字匹配,就替换它,而ID或名字不匹配时插入。如果您看到它替换了Ben Start到Ben Snow,Tyrian Lan到Tyrian Ster,并且插入了Jon和Sansa,即使ID已经存在。
# Studentid, Firstname, Lastname, Gender
1, Ben, Snow, M
1, Jon, Snow, M
1, Rob, Stark, M
2, Arya, Stark, F
2, Sansa, Startk, F
2, Tyrian, Ster, M