Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.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,我想知道如何使用update语句高效地更新多行数据。我知道我可以像下面这样插入多个记录 INSERT INTO example (example_id, name, value, other_value) VALUES (100, 'Name 1', 'Value 1', 'Other 1'), (101, 'Name 2', 'Value 2', 'Other 2'), (102, 'Name 3', 'Value 3', 'Other 3'), (103, 'Name 4

我想知道如何使用
update
语句高效地更新多行数据。我知道我可以像下面这样插入多个记录

INSERT INTO example
  (example_id, name, value, other_value)
VALUES
  (100, 'Name 1', 'Value 1', 'Other 1'),
  (101, 'Name 2', 'Value 2', 'Other 2'),
  (102, 'Name 3', 'Value 3', 'Other 3'),
  (103, 'Name 4', 'Value 4', 'Other 4');
但是它在Update中是如何工作的,或者如果我必须循环查询并逐个更新

目前,我必须使用
foreach
循环并更新每个
SQL
语句

foreach() {
    // update statement....
    // and execute the query
}
)

for($i=0;$i
您可以在需要更新时使用case

例如:

UPDATE users
    SET value = CASE 
        WHEN id in (1,4) THEN 53
        WHEN id = 2 THEN 65
        WHEN id in (3,5) THEN 47
    END
WHERE id IN (1,2,3,4,5)

请参阅此文档并了解更多信息。

您还可以在MYSQL中使用CASE

例:

您可以看到另一个例子,在这个例子中,有一个表
Person
,并且错误地输入了
Gender
。因此,您需要通过更新
男性对女性
女性对男性
来纠正这些错误

下面是您的代码:

UPDATE Person 
    SET Gender= CASE
        WHEN gender= 'Male' THEN 'Female' 
        WHEN gender= 'Female' THEN 'Male' 
        ELSE gender 
    END

只需使用
WHERE
条款更新多行可能比插入短得多,但如果没有提供适当的条件,则同时会非常危险。你想解决的问题是什么?你能把它加到问题上吗?希望是一些样本数据和一些条件?你想在每个数据中使用不同的值,还是用相同的值更新?vinodadhikary谢谢是的,有条件。我已将身份证附加到it@AlphaRootMks是的,不同的值,这是插入RPM,我要更新。感谢任何方式和这不是有效的,看看我的插入above@bluebill1049查看我的更新——我已经编写了一个伪查询,向您展示了如何执行该操作;谢谢RPM,无论如何给你一个“放弃”的回答@Pra答案就是我想要的。很好,这就是我想要的。
UPDATE users
    SET value = CASE 
        WHEN id in (1,4) THEN 53
        WHEN id = 2 THEN 65
        WHEN id in (3,5) THEN 47
    END
WHERE id IN (1,2,3,4,5)
UPDATE example
    SET example_id = CASE 
        WHEN example_id=100 THEN 1000
        WHEN example_id=101 THEN 1001
        WHEN example_id=102 THEN 1002
        ELSE example_id*10
    END
UPDATE Person 
    SET Gender= CASE
        WHEN gender= 'Male' THEN 'Female' 
        WHEN gender= 'Female' THEN 'Male' 
        ELSE gender 
    END