这个问题已经在这里有了答案 :
MySQL更新案例帮助 (6个答案)
6年前关闭。
我正在尝试使用CLI脚本更新LARGE MyISAM表(2500万条记录)。该表没有被其他任何东西锁定/使用。
我想而不是对每个记录执行单个UPDATE查询,我不妨利用CASE功能。
该id
字段为PRIMARY。我怀疑以下查询应花费毫秒。
UPDATE `table` SET `uid` = CASE
WHEN id = 1 THEN 2952
WHEN id = 2 THEN 4925
WHEN id = 3 THEN 1592
END
瞧,查询占用了CPU,并且永远无法完成。
然后,令我惊讶的是,我发现查询正在更新所有2500万行,在我未指定的行上放置NULL。
目的是什么?我可以只对特定的行进行MASS更新,而不必每次执行此查询时都更新2500万行吗?还是我必须先进行个别更新然后提交?
尝试这个
UPDATE `table` SET `uid` = CASE
WHEN id = 1 THEN 2952
WHEN id = 2 THEN 4925
WHEN id = 3 THEN 1592
ELSE `uid`
END
WHERE id in (1,2,3)
if-then语句后面可以跟一个可选的else语句,该语句在布尔表达式为false时执行。 语法 (Syntax) if-then-else语句的语法是 - if condition then S1 else S2; 其中, S1和S2是不同的陈述。 Please note that the statement S1 is not followed by a semicolon 。 在if-th
If语句后面可以跟一个可选的Else语句,该语句在布尔表达式为false时执行。 语法 (Syntax) VB.Net中If ... Then ... Else语句的语法如下 - If(boolean_expression)Then 'statement(s) will execute if the Boolean expression is true Else 'statement(
除非后面的语句后面跟一个可选的else语句,该语句在布尔表达式为true时执行。 使用unless-then ... else语句,我们可以在一行中编写除非... else语句。 语法 (Syntax) 以下是CoffeeScript中的unless-then else语句的语法。 unless expression <b>then</b> Statements (for false) else
if-then语句后跟一个可选的else语句,该语句在布尔表达式为false时执行。 使用if-then ... else语句,我们可以在一行中编写if ... else语句。 语法 (Syntax) 以下是CoffeeScript中if-then...else语句的语法。 if expression <b>then</b> Statements (for true condition) else
if… then语句后面可以跟一个可选的else statement,该else statement,在逻辑表达式为false时执行。 语法 (Syntax)> if… then… else语句的基本语法是 - if (logical expression) then statement(s) else other_statement(s) end if 但是,如果给
if/then语句后面可以跟一个可选的else语句,该语句在布尔表达式为false时执行。 语法 (Syntax) F#编程语言中if/then/else语句的语法是 - if expr then expr else expr 流程图 (Flow Diagram) 例子 (Example) let a : int32 = 100 (* check the boolean condit