使用PHP通过字符串中搜索查询的位置对MySQL的搜索结果进行排序

我希望我的搜索结果按照从最小到最大的字符串位置的顺序排列.
例如,搜索“banana”返回:

婴儿食品,李子,香蕉和米饭,紧张

香蕉,脱水或香蕉粉

香蕉,原料

面包,香蕉,从配方准备,用人造黄油制成

CAMPBELL Soup Company,V8 SPLASH果汁饮料,草莓香蕉

CAMPBELL Soup Company,V8 SPLASH冰沙,草莓香蕉

CAMPBELL Soup Company,V8 V. FUSION Juices,Strawberry Banana

因为“香蕉”是结果的第一个字所以想要“香蕉,原始”,并且因为“香蕉”是最后一个字所以想要“CAMPBELL Soup …”最后登场.

我知道我可以使用strpos()来找到位置,但是如何将它们放在一起呢?

解决方法:

您可以在MySQL中轻松完成此操作.


 SELECT  title,LOCATE('banana',title)
 FROM myTable   
 WHERE  LOCATE('banana',title) > 0
 ORDER BY LOCATE('banana',title) 

title表示MySql表的列.

上一篇:php – 如果strpos不完全错误,如何返回true?


下一篇:PHP fwrite()如何在某些特定行之后插入新行