1

負の値と正の値の両方を持つ列「passion_level」を含む10行があります。

-3 5 8 9 -11 0 3 1 10 -8

クエリを実行するSELECT * FROM table ORDER BY passion_level DESCと、期待どおりに順序付けされた数値が得られます。リストの下部に負の数値が表示されます。しかし、どのように mysql に符号を無視して符号付き整数の列を順序付けさせ (負の数を正の数として扱う)、行をこの順序で返すようにするにはどうすればよいでしょうか。

-11 10 9 8 -8 5 -3 3 1 0
4

3 に答える 3

1

You can use ABS. It will return the absolute value:

mysql> SELECT ABS(2);
        -> 2
mysql> SELECT ABS(-32);
        -> 32
SELECT columnList FROM table ORDER BY ABS(passion_level) DESC
于 2012-09-19T17:05:26.357 に答える
1

Try and create a new column and use ABS(), then reorder according to the new column desc

SELECT *,ABS(passion_level) as order FROM table ORDER BY ABS(passion_level) DESC
于 2012-09-19T17:05:49.773 に答える
1
SELECT * 
FROM table 
ORDER BY abs(passion_level) DESC
于 2012-09-19T17:05:57.097 に答える