我遇到了一个看起来像这样的mysql查询:
SELECT
SUM(some_amount*(some_field!=90)*(some_date < '2011-04-22'))
, SUM(some_amount*(some_field =90)*(some_date < '2011-04-22')*(another_field IS NULL))
FROM
some_table
在这种情况下,*语句在*语句中的含义是什么?
答案 0 :(得分:1)
对于布尔到整数的转换,看起来不需要CAST()
。乘法用于将不需要的行的总和转换为0(使用布尔true
可以转换为1
和false
转换为0
的事实):
some_amount*(some_field!=90)*(some_date < '2011-04-22')
如果some_field == 90
或some_date >= '2011-04-22'
,相应的术语将评估为0,从而将整个表达式转换为0.
答案 1 :(得分:0)
这是一个乘法运算。
示例2 * 3 = 6
答案 2 :(得分:0)
这是一个标准的乘法运算符,
select 2 * 2
= 4
:)