mysql like多个条件or关系_mysql like查询多个or条件有没有排权重的功能?

比如我有个SQL语句如下:

SELECT `id`, `subject`FROM `glfr_article`

WHERE (1 = 1

AND `subject` LIKE '%电子商城%'

AND `subject` LIKE '%php%')

ORDER BY `point_num` DESC, `id` DESC`

现在的结果是 php 的结果很多,而且很靠前,我希望含有电子商城关键词的结果提前,该如何做呢?

回答

方法一:case then + like 给不同的关键词不同权重,对权重排序;

参考:https://blog.csdn.net/xingxin…

因为没有数据和表结构,无法测试,可能有部分语法或者其他错误。但主要思路和逻辑就是这样,如果有问题,你再修改一下使用

SELECT

id,

`SUBJECT`,

(

CASE

WHEN POSITION('电子商城' IN u.`user_name`) > 0

THEN '2'

WHEN POSITION('php' IN u.`user_name`) > 0

THEN '1'

END

) AS order_flag

FROM

`glfr_article`

WHERE (

1 = 1

AND `SUBJECT` LIKE '%电子商城%'

AND `SUBJECT` LIKE '%php%'

)

ORDER BY order_flag DESC,

`point_num` DESC,

`id` DESC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值