我有表TB1,我想在此表中插入或更新值。如果我有三个值(3,4,5)意味着我需要插入1P_id,2P_id并且如果值存在则交替计数我需要将计数值更新为此表中当前值的加1。帮助使用php找到查询逻辑。
答案 0 :(得分:0)
首先确保是否存在值:
$val1 = 2;
$val2 = 3;
$count = 5;
$sql="select * from `test_table` where 1P_id =$val1 AND 2P_id =$val2 AND count=$count";
$rs=mysql_query($sql);
if (mysql_fetch_rows() > 1) {
// run update query
} else {
//run insert query
}
答案 1 :(得分:0)
试试这个
<?php
$val1 = 3; // as we assume for 1P_id;
$val2 = 2; // as we assume for 2P_id;
$result = mysql_query("SELECT id FROM `your_table` WHERE 1P_id='$val1' AND 2P_id='$val2' LIMIT 1 ") or die(mysql_error());
if ($row = mysql_fetch_assoc($result)) {
//update the row
$id = $row['id'];
mysql_query("UPDATE `your_table` SET count=count+1 WHERE id='$id' LIMIT 1 ") or die(mysql_error());
} else {
// INSERT the row
mysql_query("INSERT INTO `your_table`(1P_id, 2P_id, count) VALUES('$val1', '$val2', 1)") or die(mysql_error());
}
?>
答案 2 :(得分:0)
最简单的方法是使用ON DUPLICATE KEY UPDATE查询进行单个INSERT。
示例结构:
INSERT INTO table ... VALUES .... ON DUPLICATE KEY UPDATE