处理“我想查 IF中同时满足这两个条件的总数”
我的理解是:
SELECT COUNT(*) FROM tougao_record WHERE accept_company_id=100 AND channel_type=1 AND check_status=6IF语句的标准形式IF(expr1,expr2,expr3)
expr1可以是单个表达式也可以是多个表达式,且&&,或||,非!
上面的语句可以这样写
select COUNT(IF(channel_type=1 &&check_status=6),1,0) FROM tougao_record WHERE accept_company_id=100
但是就我的理解,mysql在统计count的时候,不管count括号里面的内容,只管是否为空,查询的结果不为空就计数。
我是处理下面的问题用到了,可以直接跑一下我给的sql语句。
SET @destval:='0.63'SET @valforcomp='0.62'
SELECT
IF(@destval REGEXP '^[\-\+.]?([0-9.]+)$' && @valforcomp REGEXP '^[\-\+.]?([0-9.]+)$',
IF(ABS(@destval-@valforcomp)<0.02,1,0),NULL) result
上面的REGEXP只是简单的用来判断是否是数字,通过这个我还发现了另一个问题,
SELECT ABS(@destval-@valforcomp)这个查询出来不是等于0.01而是0.010000000000000009
不知道有没有帮到你。
CASE WHEN是列出几个并行的条件,几个情况都是并列的,优先级从前往后。
所以如果你的情况条件从小到大,那么遇到前边的,虽然可能符合多个条件,但是优先级是前边的优于后边的。所以遇到第一个符合的,就会取出这个条件需要的数据,而不会再往后判断。
case case_value
when when_value then statement_list
[when when_value then statement_list]…
[else statement_list]
end case
case_value:参数表示条件判断的变量;
when_value:参数表示变量的取值;
statement_list:参数表示不同when_value值的执行语句。
case语句的另一种形式。语法2:
case
when search_condition then statement_list
[when search_condition then statement_list]…
[else statement_list]
end case。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)