MySQL/PHP 自动建议
在我的 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 的单词......并且我不想要这个。
那么如何才能使查询只对每个单词的第一个字母起作用呢?与我的第一个查询完全相同,但考虑到带有空格的单词?
In my MySQL DB I have a list of terms like this (With First letters Capital and most of the time plurals)
Hairdressers
Restaurants
Beauty Salons
Furnitures For Restaurants
On my website I have a search bar where the user can search for those word (my website is a kind of POI finder). The search bar has a auto-suggest function, but I'm having problems with my query.
SELECT * FROM TABLE WHERE word = 'userword%'
So if the user enter "Res" it will return all the word starting the "Res". Fair enough, that works, But in my DB i have also words with space between them (Furnitures For Restaurants) and I would like that if the user enter "Res" the mysql query ALSO return Furnitures For Restaurants. I have tried this
SELECT * FROM TABLE WHERE word = '%userword%'
Yes great this works, but... it is a bit to much relax.. it return all and everything, so if the user enters "a" it will return all the word having a in it... And I don't want this.
So how can make the query works only on the FIRST letters of each word ? Exactly like my first query but taking in consideration words with spaces?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
查看 mysql 全文搜索 功能。也看看这篇文章,非常详细地解释了mysql全文搜索。
Look into mysql FULL Text Search feature. Look at this article too, explains mysql full text searching in a very detailed way.