mysql如果别无所事事

时间:2016-01-09 16:37:42

标签: php mysql sql

$sql3 = "SELECT * FROM `eventorder` WHERE `group1` ='$group' and `eventno`='$evno' and `gen`='$gen'";
$a = mysql_query($sql3);
$g = mysql_fetch_object($a);
if ($g) {
    mysql_query("update `eventorder` set `ch_no`=concat(`ch_no`, ', $ch') where `group1` ='$group' and `eventno`='$evno' and `gen`='$gen'");
} else {
    mysql_query("INSERT INTO `eventorder` (`group1`,`eventno`,`eventname`,` ch_no`) VALUES ('$group','$evno','$evname','$ch') ");
}

尝试在数据库中没有任何内容时插入并在可用时进行更新,但我的其他代码正在执行,但代码的这部分除外。怎么了?

1 个答案:

答案 0 :(得分:0)

无论如何,您应该使用insert . . . on duplicate key update执行此操作。首先,创建一个唯一的索引:

create unique index unq_eventorder_group1_eventno_gen on eventorder(group1, eventno, gen)

然后:

INSERT INTO `eventorder` (`group1`,`eventno`,`eventname`,` ch_no`)
    VALUES ('$group', '$evno', '$evname', '$ch')
    ON DUPLICATE KEY UPDATE
         ch_no = CONCAT(ch_no, ', ', VALUES(ch_no));

我不确定副本是否应包含gen,因为您的插入无论如何都不会插入该值。