Mysql Case表达式与Case语句
MySQL中a和a的区别是什么?什么时候可以使用它们,使用其中一个比另一个有什么好处 Case语句语法:Mysql Case表达式与Case语句,mysql,case,Mysql,Case,MySQL中a和a的区别是什么?什么时候可以使用它们,使用其中一个比另一个有什么好处 Case语句语法: CASE WHEN search_condition THEN statement_list [WHEN search_condition THEN statement_list] ... [ELSE statement_list] END CASE 大小写表达式语法: CASE WHEN [condition] THEN result [WHEN [conditi
CASE
WHEN search_condition THEN statement_list
[WHEN search_condition THEN statement_list] ...
[ELSE statement_list]
END CASE
大小写表达式语法:
CASE
WHEN [condition] THEN result
[WHEN [condition] THEN result ...]
[ELSE result]
END
它们看起来几乎相同,但Case语句的初始描述是存储程序的Case语句实现了一个复杂的条件构造。
那么,一个用于存储程序而在正常查询中不可用,这有什么显著区别呢?我在一个我正在玩的查询上尝试了这个,但失败了-。如果是这样,为什么不在存储程序中使用case表达式呢
由于它们看起来是相同的,所以还有其他语法上的差异需要注意吗?表达式的大小写计算结果为一个值,即它用于根据某些条件计算一组结果中的一个。
例如:
CASE
语句根据某些条件执行一组语句中的一个。例如:
您可以看到它们的相似性,但语句的计算结果不是值,可以单独使用,而表达式需要是表达式的一部分,例如查询或赋值。您不能在查询中使用该语句,因为查询不能包含语句,只能包含需要求值的表达式(从某种意义上说,查询本身就是一条语句),例如,
SELECT CASE WHEN condition THEN UPDATE table SET something;结束案例
毫无意义。描述得很好,我现在明白了区别。我唯一的困惑是何时以及如何使用Case语句,用您编写的语句创建php查询是否有效?我假设使用它的最佳方式是,它跟随一个查询,在这个查询中,您将一个变量设置为另一个查询的结果。例如,选择@action:=action from table limit 1
,然后在@action='update'时查询案例,然后更新sometable SET column=条件所在的值
这样行吗?CASE
语句只能用于数据库中定义的过程和函数。不能将CASE
语句作为PHP脚本中的查询执行。
SELECT CASE
WHEN type = 1 THEN 'foo'
WHEN type = 2 THEN 'bar'
ELSE 'baz'
END AS name_for_numeric_type
FROM sometable`
CASE
WHEN action = 'update' THEN
UPDATE sometable SET column = value WHERE condition;
WHEN action = 'create' THEN
INSERT INTO sometable (column) VALUES (value);
END CASE