mysql根据关键字搜索排名

阅读: 评论:0

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中文网,转载请注明出处,感谢您的尊重!

本文发布于:2024-02-02 08:47:17,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170683483642669.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:关键字搜索   mysql
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23