私はまだこれを試していませんが、最初に専門家に聞いてみようと思いました。order by句の一部が2列の乗算であるクエリを持つことは可能ですか?
私が意味するのは:
SELECT * FROM table WHERE column1 = "some condition" ORDER BY date_added DESC, (column2 * column3) ASC, another_order DESC"
2つの列を掛け合わせた答えに基づいて結果を並べ替える必要があります。
乾杯!
私はまだこれを試していませんが、最初に専門家に聞いてみようと思いました。order by句の一部が2列の乗算であるクエリを持つことは可能ですか?
私が意味するのは:
SELECT * FROM table WHERE column1 = "some condition" ORDER BY date_added DESC, (column2 * column3) ASC, another_order DESC"
2つの列を掛け合わせた答えに基づいて結果を並べ替える必要があります。
乾杯!
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 |
+----+------+------+-------------------+