如何根据一列对查询结果进行排序?

时间:2016-12-23 14:39:16

标签: mysql sql sql-order-by

这是我的问题:

$('#link01').attr('src', theme);

现在我想按$('#link01').attr('href', theme); 列排序结果。我的意思是我想首先将匹配的结果放在SELECT name, usage_guidance, total_used_num FROM tags WHERE ( name LIKE CONCAT('%', ?, '%') OR usage_guidance LIKE CONCAT(?, '%') ) AND name NOT IN ($in) LIMIT 6 条件中,然后其他结果应该在它们之后。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,您希望首先显示匹配transform的结果。

您可以通过在name LIKE %SOMETHING%语句中设置一个额外的选择字段,其条件与IF()的{​​{1}}子句相同,并按此排序字段:

WHERE

编辑:我刚刚意识到,您根本不需要name声明

答案 1 :(得分:0)

您可以将where条件添加到order by子句:

order by (name like CONCAT('%', ?, '%')) desc,
         (usage_guidance LIKE CONCAT(?, '%')) desc

MySQL将数字上下文中的布尔表达式视为数字,其中“1”表示true,“0”表示false。因此,排序的desc顺序。

请注意,usage_guidance上的第二个条件对于回答问题并非绝对必要。