mysql根据关键字搜索排名_mysql 搜索结果按照关键字排序

现在需要搜索一个字段中包含:猪,狗,牛三个词的数据,

请问,怎么才能让结果按照指定关键词排序,比如让结果数据按照其中包含了猪的排在前面,包含了狗的排在第二,牛的排在第三。

例如:

猪啊

牛啊

狗啊

狗啊

猪啊

牛啊

要让结果排序变成

猪啊

猪啊

狗啊

狗啊

牛啊

牛啊

回复讨论(解决方案)

加上order by 字段1,字段2,字段3

{

select * from 表名 order by 猪,狗,牛;

}应该就可以了

猪,狗,牛是在同一字段中的,楼上的不行。

可以这样写,例如字段名叫shengxiao$sqlstr = "select *,IF(shengxiao='猪啊',1, IF(shengxiao='狗啊',2,3)) as s from table order by s";

加上order by 字段1,字段2,字段3

{

select * from 表名 order by 猪,狗,牛;

}应该就可以了

这样不行,猪,狗,牛不是字段,猪狗牛是数据

查询是这样的

$str="select id from biaoqian where (biaoti like '%猪%' or b.biaoti like '%狗%' or b.biaoti like '%牛%' or b.biaoti like '%猪狗牛%' ) order by id desc limit 10";

现在的搜索结果排序方式是按id的倒序排列,我想按照搜索结果包含的数据排列,

包含 “猪狗牛”的排在第一,然后包含猪的排在第二,包含狗的排在第三,最后是包含牛的

create temporary table T select '猪啊' as f union select '牛啊' union select '狗啊';select *, if(locate('猪', f), '猪',if(locate('牛',f),'牛', if(locate('狗',f),'狗',''))) as x from T order by find_in_set(x, '猪,狗,牛') f x 猪啊 猪 狗啊 狗 牛啊 牛

order by xx like '%猪%', xx like '%狗%', xx like '%牛%' desc

搞定了,非常感谢

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值