在我的 MySQL 数据库中,我有一个这样的术语列表(首字母大写,大多数时候是复数)
Hairdressers
Restaurants
Beauty Salons
Furnitures For Restaurants
在我的网站上,我有一个搜索栏,用户可以在其中搜索这些词(我的网站是一种 POI 查找器)。搜索栏具有自动建议功能,但我的查询有问题。
SELECT * FROM TABLE WHERE word = 'userword%'
因此,如果用户输入“Res”,它将返回所有以“Res”开头的单词。很公平,这很有效,但在我的数据库中,我也有它们之间有空格的词(餐厅家具),我希望如果用户输入“Res”,mysql 查询也返回餐厅家具。这个我试过了
SELECT * FROM TABLE WHERE word = '%userword%'
是的,这很好用,但是......它有点太放松了......它会返回所有内容,所以如果用户输入“a”,它会返回所有包含 a 的词......我不想要这个。
那么如何才能使查询只对每个单词的第一个字母起作用呢?与我的第一个查询完全一样,但考虑了带空格的单词?
最佳答案
查看 mysql FULL Text Search特征。看这个article同样,以非常详细的方式解释了 mysql 全文搜索。
关于MySQL/PHP 自动提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8111024/