MySQL中使用case when 语句实现多条件查询的方法
更新时间:2010年12月17日 13:49:58 作者:
今天在一个应用中使用到了一个比较特殊的数据查询要求。需要的朋友可以参考下。
举例如下:
数据表为DemoTable,字段有id, condition1,condition2,condition3,condition4,condition5
要求是查询DemoTable中,condition1,condition2,condition3,condition4,condition5五个字段中符合任意两个或两个以上的条件的内容。
可使用case when来实现这个条件,需要嵌套子查询语句
sql语句代码示例如下:
SELECT * FROM DemoTable
WHERE ((SELECT CASE 1 WHEN condition1满足条件 THEN 1 ELSE 0 END FROM DemoTable )
+(SELECT CASE 1 WHEN condition2满足条件 THEN 1 ELSE 0 END FROM DemoTable)
+(SELECT CASE 1 WHEN condition3满足条件 THEN 1 ELSE 0 END FROM DemoTable)
+(SELECT CASE 1 WHEN condition4满足条件 THEN 1 ELSE 0 END FROM DemoTable)
+(SELECT CASE 1 WHEN condition5满足条件 THEN 1 ELSE 0 END FROM DemoTable))>=2
数据表为DemoTable,字段有id, condition1,condition2,condition3,condition4,condition5
要求是查询DemoTable中,condition1,condition2,condition3,condition4,condition5五个字段中符合任意两个或两个以上的条件的内容。
可使用case when来实现这个条件,需要嵌套子查询语句
sql语句代码示例如下:
复制代码 代码如下:
SELECT * FROM DemoTable
WHERE ((SELECT CASE 1 WHEN condition1满足条件 THEN 1 ELSE 0 END FROM DemoTable )
+(SELECT CASE 1 WHEN condition2满足条件 THEN 1 ELSE 0 END FROM DemoTable)
+(SELECT CASE 1 WHEN condition3满足条件 THEN 1 ELSE 0 END FROM DemoTable)
+(SELECT CASE 1 WHEN condition4满足条件 THEN 1 ELSE 0 END FROM DemoTable)
+(SELECT CASE 1 WHEN condition5满足条件 THEN 1 ELSE 0 END FROM DemoTable))>=2
相关文章
MySQL使用ReplicationConnection导致连接失效解决
这篇文章主要为大家介绍了MySQL使用ReplicationConnection导致连接失效问题分析解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-07-07mysql通过find_in_set()函数实现where in()顺序排序
这篇文章主要介绍了mysql通过find_in_set()函数实现where in()顺序排序的相关内容,具有一定参考价值,需要的朋友可以了解下。2017-10-10
最新评论