mysql 按照权重排序

Posted 正怒月神

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 按照权重排序相关的知识,希望对你有一定的参考价值。

项目中查询某张表,会按照 state排序。

但是state设置后,由于每个状态的权重不同,所以需要额外设置权重,用来排序。

一 数据库增加权重字段

这个是最方便的,

不管是增加关联表,还是增加字段。都是可以的。直接按照权重字段排序就好了。

二 通过sql拼接权重

我是将状态和权重,放在枚举中的。

通过获取状态枚举,取出状态的值和权重。

最后拼接sql

select t.* 
, ( IF(state=1 , 70, 0) 
    + IF(state=2 , 80, 0) 
    + IF(state=3 , 90, 0) 
    + IF(state=4 , 100, 0) 
    + IF(state=5 , 60, 0) 
    + IF(state=6 , 50, 0) 
    + IF(state=7 , 40, 0) ) AS weight 
from testTable as t

以上是关于mysql 按照权重排序的主要内容,如果未能解决你的问题,请参考以下文章

按重要性、权重和长度对查询进行排序

mysql按照时间排序去重查询?

mysql按照首字母排序

21《MySQL 教程》ORDER BY 排序

mysql 字符串按照数字类型排序

mysql 查询时 按照某个字段计算后的值 排序?