使用PHP按搜索查询在字符串中的位置对来自MySQL的搜索结果进行排序

5 php mysql sorting strpos

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


婴儿食品、李子、香蕉和大米,过滤

香蕉、脱水或香蕉粉

香蕉,生的

面包、香蕉,根据食谱制作,用人造黄油制成

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

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

CAMPBELL Soup Company, V8 V. FUSION Juices, 草莓香蕉


我希望“Bananas, raw”排在最前面,因为“banana”是结果中的第一个词,我希望“CAMPBELL Soup...”最后出现,因为“banana”是最后一个词。

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

Ade*_*eel 5

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


 SELECT  title,LOCATE('banana',title)
 FROM myTable   
 WHERE  LOCATE('banana',title) > 0
 ORDER BY LOCATE('banana',title) 
Run Code Online (Sandbox Code Playgroud)

标题代表 MySql 表的列。