首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php mysql更新1查询,而不是更多

问php mysql更新1查询,而不是更多
EN

Stack Overflow用户
提问于 2013-08-30 20:00:29
回答 1查看 69关注 0票数 0

我有一个带有id和排序的表,我需要创建这个更新

代码语言:javascript
复制
mysql_query("
UPDATE `steps` SET sort = '2' WHERE id = '9' ;
UPDATE `steps` SET sort = '1' WHERE id = '5' ;
UPDATE `steps` SET sort = '3' WHERE id = '6' ;
UPDATE `steps` SET sort = '4' WHERE id = '4' ;
UPDATE `steps` SET sort = '5' WHERE id = '2' ;
UPDATE `steps` SET sort = '6' WHERE id = '1' ;
UPDATE `steps` SET sort = '7' WHERE id = '8' ;
");

像这样的事情是不正确的

代码语言:javascript
复制
mysql_query("UPDATE `steps` SET sort = '2' WHERE id = '9' , sort = '1' WHERE id = '5' , sort = '3' WHERE id = '6' ;");

怎么能把它缩小呢?你有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-30 20:05:28

mysql_query不支持使用单个字符串运行多个查询。MySQLI通过mysqli_multi_query支持这一点,但我个人认为这是一个反模式。据我所知,PDO并不支持。

您可以使用多个mysql_query语句,但也可以在一个查询中完成:

代码语言:javascript
复制
UPDATE steps SET sort = CASE
    WHEN id = 9 THEN 2
    WHEN id = 5 THEN 1
    ELSE sort
END CASE

在新代码中使用PDO或mysqli代替ext/mysql

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18540623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档