Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL或在WHEN内(在CASE中)_Mysql_Sql_Database - Fatal编程技术网

Mysql SQL或在WHEN内(在CASE中)

Mysql SQL或在WHEN内(在CASE中),mysql,sql,database,Mysql,Sql,Database,奇怪的是我在网上找不到这个, 我需要在case语句中的when子句中使用OR,例如: SELECT type,color,brand,CASE type WHEN "foo" OR "BAR" OR "somethingelse" THEN SELECT ... FROM .... WHERE .... > ....; 我就是找不到办法让它工作,我试着用括号括起来: SELECT type,color,brand,CASE type WHEN ("foo" OR "BAR" OR "so

奇怪的是我在网上找不到这个, 我需要在case语句中的when子句中使用OR,例如:

SELECT type,color,brand,CASE type WHEN "foo" OR "BAR" OR "somethingelse" THEN SELECT ... FROM .... WHERE .... > ....;
我就是找不到办法让它工作,我试着用括号括起来:

SELECT type,color,brand,CASE type WHEN ("foo" OR "BAR" OR "somethingelse") THEN SELECT ... FROM .... WHERE .... > ....;
或置于方括号内:

SELECT type,color,brand,CASE type WHEN ["foo" OR "BAR" OR "somethingelse"] THEN SELECT ... FROM .... WHERE .... > ....;
问题是,我有更多的选项组要检查,并且为每个选项设置一个单独的时间,这将使我的查询超长。
没有,有什么建议吗?

案例中
您不能启动没有括号的单独选择。。。而
可通过以下方式实现:

CASE WHEN type IN ("foo","BAR","somethingelse") THEN ... ELSE END
如果要从
选择
调用(子查询)获取目标值,请在
then
部分执行此操作

... THEN ( SELECT col1 FROM tble WHERE ... ) ELSE END

案例有两种形式,只有一种可以使用

  • 案例x当val1然后结果1当val2然后结果2否则默认结果结束
  • 当x=val1时为case,当y=val2时为result1,当y=val2时为result2,否则为DefaultResult end
    , 或者,更一般地说:
    case when[boolExp1]然后reslt1 when[boolExp2]然后reslt2 else defltReslt end
  • 第二种形式可以使用
    ,或任何其他布尔运算符(我记得
    存在
    除外)


    可能重复的Hi cars10,这正是我所拥有的,我将编辑我的帖子,这只是我写的解释我的问题的一个快速示例查询。Thx Charles,这解决了我的问题,马上解决:)Thx!
     case when x = val1 or y = val2 or z in (val3, val4, val5) then result1 
          else defaultResult end