0

これに使用される用語や正確な単語はわかりませんが、数値を X と Y の間になるようにトリミングできる MySQL 内の関数を探しています。

たとえば、次のようなものです。

SELECT TRIM_NUMBER(NUMBER, MIN, MAX);

私がそうするなら:TRIM_NUMBER(50, 1, 100)それはうまくいくはずです、そして戻り50ます.

しかし、次のようなTRIM_NUMBER(999, 1, 100)ことをすると、 が返されるはずです。これは100、設定した MAX 値だからです。同じことが MIN にも当てはまります。

MySQL に含まれるそのような機能はありますか?

4

5 に答える 5

4

これを試して

SELECT GREATEST(LEAST(NUMBER, 100), 1);
于 2013-04-01T23:49:09.953 に答える
1

何も組み込まれていませんが、コードは次のように自分で作成します。

select if(num < 1, 1, if (num > 100, 100, num))
于 2013-04-01T23:50:29.260 に答える
1

関数の「やり過ぎ」が必要な場合は、次の提案があります。

create function trimNumber(x double, floorValue double, ceilValue double) returns double
begin
   declare ans double;
   if x >= floorValue and x <= ceilValue then
       set ans = x;
   else
       if x < floorValue then
           set ans = floorValue;
       else
           set ans = ceilValue;
       end if;
   end if;
   return ans;
end
于 2013-04-02T00:00:47.317 に答える
0

そのようなものを探していると思います(MySQLリファレンスマニュアルから):

http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_between

于 2013-04-01T23:46:58.350 に答える