次のような 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 に変換します (ブール値をおよびにtrue
キャストできるという事実を使用)。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
:)