在mysql查询中获得最佳匹配

dhxwm5r4  于 2021-06-24  发布在  Mysql
关注(0)|答案(2)|浏览(392)

我想从mysql查询中得到结果,按最佳匹配排序。这意味着当我看到这样一张table时:

+--------+
| Field  |
+--------+
| X01234 |
| 001234 |
| 01234  |
| XT1234 |
+--------+

想要寻找 $str='012' ,所需输出应为

01234
001234
X01234

要获得此结果,我找到的唯一方法是使用以下联合查询:

SELECT * FROM my_table WHERE field LIKE '$str%'
UNION
SELECT * FROM my_table WHERE field LIKE '%$str%'

有没有更好的方法来选择搜索字符串的最佳匹配?

3hvapo4f

3hvapo4f1#

也许这就是你想要的

SELECT *
FROM my_table
WHERE field LIKE '%$str%'
ORDER BY INSTR(field,'$str'),field

你也可以使用 INSTR 相反 LIKE ```
SELECT *
FROM my_table
WHERE INSTR(field,'$str')>0
ORDER BY INSTR(field,'$str'),field

sql小提琴-http://www.sqlfiddle.com/#!9/d3b410/1号公路
ubof19bj

ubof19bj2#

从我的\u表中选择*字段,如“$str%”,按我的\u表排序

相关问题