在一行 SQL 中更新两个不同的行

本教程将介绍在一行 SQL 中更新两个不同的行的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

在一行 SQL 中更新两个不同的行 教程 第1张

问题描述

假设我有一个名为 example 的表:

[abc] |[定义]

--1---|-qwerty-

--2---|-asdf---

我想要做的是更新一个 SQL 查询中的两列(仅使用一个 UPDATE).

UPDATE example SET def = 'foo' where abc = '1'

UPDATE example SET def = 'bar' where abc = '2'

以上是我想要实现的,但是在一行 sql 中(使用 MySQL).我知道您可以像 UPDATE example SET def 'foo', SET def = 'bar' 那样执行此操作,但我不确定您怎么使用两个不同的 where 语句来执行此操作.

推荐答案

你可以使用IF执行一个UPDATE(

UPDATE  example
SET  def = IF(abc = 1, 'foo', 'bar')
WHEREabc IN (1, 2) -- reason to make it more faster, doesn't go on all records

UPDATE  example
SET  def = CASE WHEN abc = 1 THEN 'foo' ELSE 'bar' END
WHERE abc IN (1, 2) -- reason to make it more faster, doesn't go on all records

好了关于在一行 SQL 中更新两个不同的行的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。