は、私はこのような何かをしたい:MySQLのクエリ、数値の違いによる順序?
SELECT * FROM `sometable`
WHERE `smth`=`smth`
ORDER BY (`r1`-`r2`)
が、R2> R1、差が負ではない、それは非常に大きな価値を持っている...とき、どのように引いた後、負の値を取得するには?
は、私はこのような何かをしたい:MySQLのクエリ、数値の違いによる順序?
SELECT * FROM `sometable`
WHERE `smth`=`smth`
ORDER BY (`r1`-`r2`)
が、R2> R1、差が負ではない、それは非常に大きな価値を持っている...とき、どのように引いた後、負の値を取得するには?
はよく、私はあなたがR1とR2で符号なしの値を持っていることをsupose ...負の値は、これを実行してみてください取得する:それは否定することはできません、あなたが希望の場合
SET sql_mode='NO_UNSIGNED_SUBTRACTION';
は、おそらく未署名のフィールドです最初にフィールドを通常のintにキャストする必要があります。
yeap ..良いアイデア...しかしこれはhttp://stackoverflow.com/questions/4286767/mysql-query-order-by -numeric-difference/4286776#4286776ははるかに単純です... –
はい、それはきれいだった、1つは常に新しいものを学ぶ:) –
完璧!できます!どうもありがとうございました! –
上記の文をクエリ・ボックスで実行すると、 'sql_mode'が永続的に' NO_UNSIGNED_SUBSTRACTION'に設定されるか、または1つの問合せに対してのみ有効になりますか? –
このクエリを実行する場合、パラメータは現在の接続に対してのみ有効になります;] – mishunika