SQL order by total of value by rows
Posted
技术标签:
【中文标题】SQL order by total of value by rows【英文标题】:SQL order by total of number of value by rows 【发布时间】:2021-08-06 17:58:29 【问题描述】:有没有办法返回行中包含值的列的总和,以将其用于 order by 示例:
id | title | body_text_1 | body_text_2 | body_text_3 |
---------------------------------------------------------------------------------------------
1 | History | book of History | movies | Image |
2 | Sport | history | book | Audio |
3 | Cinema | History | History | History |
4 | History | classic | History | Audio |
如果我搜索单词 历史,我正在使用 LIKE %value% 结果显示 id 3 为第一个,因为它在 3 列中有历史记录
第二个将是 1 和 4,因为它在 2 列中有历史记录
最后一个将是 2,因为它只在一列中有历史记录
结果:
3
1
4
2
【问题讨论】:
【参考方案1】:您可以在order by
中添加布尔值:
order by (title = 'History') + (body_text_1 = 'History') + (body_text_2 = 'History') + (body_text_34 = 'History') desc
【讨论】:
返回相同的结果是因为我使用的是 %value% @im-learning 。 . .你可以使用任何合适的表达方式。这解决了您最初提出的问题。以上是关于SQL order by total of value by rows的主要内容,如果未能解决你的问题,请参考以下文章
是否可以将 SUM() ORDER BY 的结果放入原始表中?
MySQL [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause