0

次のような 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 ステートメントの * は何を意味するのでしょうか?

4

3 に答える 3

1

CAST()ブール値から整数への変換には必要ないようです。乗算を使用して、不要な行の合計を 0 に変換します (ブール値をおよびにtrueキャストできるという事実を使用)。1false0

some_amount*(some_field!=90)*(some_date < '2011-04-22')

some_field == 90またはの場合some_date >= '2011-04-22'、対応する項は 0 に評価されるため、式全体が 0 に変換されます。

于 2012-05-01T13:57:37.147 に答える
0

乗算演算です。

例 2*3=6

于 2012-05-01T13:52:44.040 に答える
0

これは標準の乗算演算子です。

select 2 * 2 

= 4

:)

于 2012-05-01T13:52:51.573 に答える