用于更新的 MySql UNION
有没有办法使用单个 SQL 查询更新多行,每行具有不同的值? 我必须用不同的数据更新多行中的一列。 对每一行使用单独的更新查询似乎过多,因此如果可能的话,我希望将此过程合并到单个 SQL 语句中,或者至少减少所需的查询数量。
我将 PHP 与 Zend 框架和 MySql 结合使用。
Is there a way to update multiple rows with different values for each row using a single SQL query? I have to update one colum in many rows with different data. Using individual update queries for each row seems excessive so if it's possible I would like to consolidate this process into a single SQL statement or at least reduce the number of queries required.
I am using PHP with the Zend framework and MySql.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
创建一个临时表并填充:
然后发出:
Create a temporary table and fill it with:
Then issue:
具体不了解 MySQL,但要根据 SELECT 或多个 SELECT 的 UNION 更新多行,我会执行
Update 10/28/2014,转换为适用于 MySQL:
Don't know about MySQL specifically, but to update multiple rows based on a SELECT, or a UNION of multiple SELECTs, I would do
Update 10/28/2014, converted to work for MySQL:
我知道这适用于 SQL Server,因此值得在 MySQL 中尝试。
您可以根据不同的行构建 case 语句。
I know this works for SQL Server, so it's worth a try in MySQL.
You can construct the case statement based on your different rows.