排序mysql表中两个变量的最大值

Dan*_*ern 2 php mysql max sql-order-by

希望有人可以帮助我解决这个问题。

我有一个包含两列的表,我想从该表中选择项目并根据这两个值中的哪个值较高对其进行排序。

假设我有“ x”和“ y”列,并且我有以下条目:

     x ;  y
1.- 10 ; 12
2.-  5 ; 10
3.- 11 ; 20
Run Code Online (Sandbox Code Playgroud)

我希望响应排序:3、1、2

我知道这将无济于事,因为它在mysql中没有任何意义,但是代表了我的想法

$query = (mysql_query("SELECT * FROM productos ORDER BY MAX(x, y)"));
Run Code Online (Sandbox Code Playgroud)

我不想为此查询在表中创建一个新变量。

任何的想法?非常感谢

Zoo*_*Way 5

您想按x或y排序,取决于哪个更高?

SELECT * FROM products ORDER BY GREATEST(x, y)
Run Code Online (Sandbox Code Playgroud)

但是在您的情况下,这是3、2、1,因为15(y)高于-5(x),并且也高于第1行中的最大值。所以我有点困惑。


支持NULL和正确的顺序:

SELECT * FROM products ORDER BY GREATEST(COALESCE(x, 0), COALESCE(y, 0)) DESC
Run Code Online (Sandbox Code Playgroud)

如果您需要其他值作为默认值,而0不仅仅是替换它。