2

mysql クエリに最小値を実装したいのですが、最小値を 0 にしないようにするにはどうすればよいですか?

これは私の質問です

    LEAST(price, price_double, price_triple, price_quad) AS minvalue

現在0をカウントしていますが、0をカウントしてゼロなしで結果を検索したくありません

例えば

   price            100
   price_double     75
   price_tripple    50
   price_quad       0

最小値は 0 ではなく 50 になりますが、現在は 0 を含んでいます。

それを手伝ってください、私は非常に困っています、私はたくさん検索しましたが、成功しませんでした。

4

3 に答える 3

1

caseこれを行うには、least()関数で使用できます。残念ながら、least()最近のバージョンの MySQL では引数が NULL の場合は NULL を返します。したがって、これは大きなダミー値を使用します。

least(case when price > 0 then price else 999999 end,
      case when price_double > 0 then price_double else 999999 end,
      case when price_triple > 0 then price_triple else 999999  end,
      case when price_quad > 0 then price_quad else 999999 end
     )
于 2013-05-10T14:37:26.637 に答える
1

where 句を使用する

 SELECT LEAST(price, price_double, price_triple, price_quad)
 FROM ....
 WHERE LEAST(price, price_double, price_triple, price_quad) > 0
于 2013-05-10T14:40:09.517 に答える