Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用一个查询进行MySQL多行更新_Php_Mysql - Fatal编程技术网

Php 使用一个查询进行MySQL多行更新

Php 使用一个查询进行MySQL多行更新,php,mysql,Php,Mysql,我有一个MySQL表,如下图所示: 我已将表格编辑为下图: (数据库上的“路径”列选择与图像2相同的类别) 如何使用PDO prepared语句为此运行多行MySQL更新查询。您实际上可以使用MySQL的CASE来更新多行。这也可以对多列执行,并且在PHP中生成语句并不困难 UPDATE `links` SET `name` = CASE `link_id` WHEN '36' THEN 'Mc' WHEN '37' THEN 'Mc' WHEN '38' THEN

我有一个MySQL表,如下图所示:

我已将表格编辑为下图:

(数据库上的“路径”列选择与图像2相同的类别)


如何使用PDO prepared语句为此运行多行MySQL更新查询。

您实际上可以使用MySQL的
CASE
来更新多行。这也可以对多列执行,并且在PHP中生成语句并不困难

UPDATE `links` SET `name` = CASE `link_id`
    WHEN '36' THEN 'Mc'
    WHEN '37' THEN 'Mc'
    WHEN '38' THEN 'sdfghjkl'
    WHEN '39' THEN 'r5tyuikolp;['
END, `path` = CASE `link_id`
    WHEN '36' THEN '2'
    WHEN '37' THEN '1'
    WHEN '38' THEN '2'
    WHEN '39' THEN '7'
END WHERE `link_id` IN ('36','37','38','39');

是的可能重复,它们取决于链接id在(…)中的位置。这种性质的东西@jli我想你应该检查一下,看看他们是否有PDO在他们的MySQL上,然后再标记下来。谢谢你的领导。假设我要运行这个相同的查询来循环1000行,那么如何运行这个循环,然后再运行这个查询来获得与您提供的示例解决方案相同的结果呢。