相关疑难解决方法(0)

ON DUPLICATE KEY + AUTO INCREMENT问题mysql

我有这样的表结构

在此输入图像描述

当我向表中插入行时,我正在使用此查询:

INSERT INTO table_blah ( material_item, ... hidden ) VALUES ( data, ... data ) ON DUPLICATE KEY UPDATE id = id, material_item = data, ... hidden = data;

当我第一次插入数据而不触发ON DUPLICATE KEYid增量罚款:

在此输入图像描述

但是当ON DUPLICATE KEY触发器和我插入新行时,id看起来很奇怪:

在此输入图像描述

auto increment即使触发,我怎样才能保持正确的增量ON DUPLICATE KEY

mysql

24
推荐指数
2
解决办法
3万
查看次数

具有不同ID的MySQL批处理更新语句

是否有任何单个 SQL语句等同于这些?

UPDATE table_name SET (a = 'something', b='B1') WHERE id=1;
UPDATE table_name SET (a = 'something else', b='B2') WHERE id=2;
UPDATE table_name SET (a = 'another', b='B3') WHERE id=3;
Run Code Online (Sandbox Code Playgroud)

mysql sql sql-update

3
推荐指数
1
解决办法
3586
查看次数

MySQL通过PHP批量插入

在PHP中,我从URI中提取大量JSON数据,然后通过内置json_decode函数将其序列化为关联的PHP数组.

然后,我创建一个数组:

$inserts = array();
Run Code Online (Sandbox Code Playgroud)

我遍历JSON关联数组,为我的$inserts数组中的JSON数组中的每个项添加一个新的键/值对:

foreach($JSON_data as $key => $value) {     
    $inserts[] = "(".mysql_real_escape_string($value["prop1"]).","
                    .mysql_real_escape_string($value["prop2"]).","
                    .mysql_real_escape_string($value["prop3"]).")";
}
Run Code Online (Sandbox Code Playgroud)

然后,我只是通过插入我已经准备好的插入来执行批量插入:

mysql_query("INSERT INTO `MyTable` (`col1`,`col2`,`col3`) VALUES ".implode(",",$inserts));
Run Code Online (Sandbox Code Playgroud)

无论如何,我发现mysql_*不再建议使用这个家庭.所以我想知道如何使用预先准备好的语句或者新接受的结构来完成这种类型的模式?我担心的是消除SQL注入,并且尽可能地更新MySQL,只需少于10个并发的开放连接(最好是1).此外,尽可能简单快捷.

或者,如果有新模式或首选方法来执行此类批量事务.

php mysql

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

mysql ×3

php ×1

sql ×1

sql-update ×1