我遇到了一个如下所示的 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
在这种情况下,select 语句中的 * 是什么意思?
看起来CAST()
对于布尔到整数的转换不是必需的。乘法用于将不需要的行的总和转换为 0(使用 booleantrue
可以转换为1
和false
的事实0
):
some_amount*(some_field!=90)*(some_date < '2011-04-22')
如果some_field == 90
或some_date >= '2011-04-22'
,则相应的项将计算为 0,从而将整个表达式转换为 0。
这是一个乘法运算。
示例 2*3=6
这是一个标准的乘法运算符,
select 2 * 2
= 4
:)