php - mysql 如果其他什么都不做

标签 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') ");
}

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

最佳答案

您应该使用 insert 来执行此操作。 。 。无论如何,重复 key 更新。首先,创建唯一索引:

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,因为您的插入内容无论如何都不会插入该值。

关于php - mysql 如果其他什么都不做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34696058/

相关文章:

php - 交响乐2 : Is it possible to import a PHP file in YAML file?

php - 我在设置 laravel 时发生了什么错误

mysql - 举例说明 : row vs field?

c++ - Microsoft Access ODBC 驱动程序管理器函数序列错误

php - 如何使用 laravelcollective/html 验证器的规则数组检查表单的 2 个字段是否具有相同的内容?

php - 我应该使用 php 还是我的 sql 将数据插入表中

mysql事务 - 回滚任何异常

mysql - 在具有许多连接的数据库中使用 "ROW_COUNT()"是否安全

mysql - MySql 查询排序问题

MySQL > 查找具有相同兴趣的用户