-2

私はまだこれを試していませんが、最初に専門家に聞いてみようと思いました。order by句の一部が2列の乗算であるクエリを持つことは可能ですか?

私が意味するのは:

SELECT * FROM table WHERE column1 = "some condition" ORDER BY date_added DESC, (column2 * column3) ASC, another_order DESC"

2つの列を掛け合わせた答えに基づいて結果を並べ替える必要があります。

乾杯!

4

1 に答える 1

0

これを試してみましたが、動作します...

CREATE TABLE `multiorder`
    (`id` int, `num1` int, `num2` int)
;

INSERT INTO `multiorder`
    (`id`, `num1`, `num2`)
VALUES
    (1, 5, 9),
    (2, 9, 3),
    (3, 4, 6),
    (4, 9, 1),
    (5, 4, 2),
    (6, 5, 6)
;

SQLの場合

SELECT *, (`num1` * `num2`) FROM `multiorder`
    ORDER BY `num1` ASC, (`num1` * `num2`) ASC

出力

+----+------+------+-------------------+
| ID | NUM1 | NUM2 | (`NUM1` * `NUM2`) |
+----+------+------+-------------------+
|  5 |    4 |    2 |                 8 |
|  3 |    4 |    6 |                24 |
|  6 |    5 |    6 |                30 |
|  1 |    5 |    9 |                45 |
|  4 |    9 |    1 |                 9 |
|  2 |    9 |    3 |                27 |
+----+------+------+-------------------+

フィドル:http ://www.sqlfiddle.com/#!2 / b19a4 / 3

于 2013-01-23T10:02:12.900 に答える