我想从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%'
有没有更好的方法来选择搜索字符串的最佳匹配?
2条答案
按热度按时间3hvapo4f1#
也许这就是你想要的
你也可以使用
INSTR
相反LIKE
```SELECT *
FROM my_table
WHERE INSTR(field,'$str')>0
ORDER BY INSTR(field,'$str'),field
ubof19bj2#
从我的\u表中选择*字段,如“$str%”,按我的\u表排序