Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 按第一个条件排序或条件为真_Mysql_Sql Order By - Fatal编程技术网

Mysql 按第一个条件排序或条件为真

Mysql 按第一个条件排序或条件为真,mysql,sql-order-by,Mysql,Sql Order By,我在MySQL 5.6+数据库中有下表 +----+-------+-------+--------------+--------------+ | id | mood1 | mood2 | mood1_visual | mood2_visual | +----+-------+-------+--------------+--------------+ | 1 | 5 | 7 | 5c | 7a | | 2 | 5 |

我在MySQL 5.6+数据库中有下表

+----+-------+-------+--------------+--------------+
| id | mood1 | mood2 | mood1_visual | mood2_visual |
+----+-------+-------+--------------+--------------+
|  1 |     5 |     7 |           5c |           7a |
|  2 |     5 |     7 |           5b |           7b |
|  3 |     5 |     7 |           5c |           7d |
|  4 |     5 |     8 |           5a |           8a |
|  5 |     5 |     7 |           5c |           7a |
|  6 |     5 |     8 |           5b |           8a |
+----+-------+-------+--------------+--------------+
我需要选择其中的行

(`mood1_visual`='5c' AND `mood2_visual`='7a') OR 
  (`mood1`=5 AND `mood2`=7 AND (`mood1_visual`<>'5c' OR `mood2_visual`<>'7a'))
在ORDER BY子句中,我如何判断这一点?有类似的吗

ORDER BY THE ONES THAT MATCH CONDITION FIRST THEN THE OTHERS ?

请注意,5,1,2,3或1,5,3,2或5,1,3,2都是我需要的有效排序,只是为了使解决方案更简单。

MySQL可以
按任意表达式排序,例如

ORDER BY (foo = bar)
该操作的布尔结果将被类型转换为整数
0
1
,因此,如果您首先希望所有“相等”值(
1
),则

如果您首先需要所有的false(
0
)值,那么

ORDER BY (foo = bar) ASC

MySQL可以按任意表达式排序,例如

ORDER BY (foo = bar)
该操作的布尔结果将被类型转换为整数
0
1
,因此,如果您首先希望所有“相等”值(
1
),则

如果您首先需要所有的false(
0
)值,那么

ORDER BY (foo = bar) ASC

如果将
CASE
表达式与
orderby
类似,会怎么样

ORDER BY 
    CASE 
        WHEN (`mood1_visual`='5c' AND `mood2_visual`='7a') THEN id 
    END  

如果将
CASE
表达式与
orderby
类似,会怎么样

ORDER BY 
    CASE 
        WHEN (`mood1_visual`='5c' AND `mood2_visual`='7a') THEN id 
    END  

我只是想知道你怎么能回答得那么快。。。谢谢!我只是想知道你怎么能回答得那么快。。。谢谢!