php mysql 搜索查询通配符问题
如果我搜索 LENA,我只想得到 LENA 是一个单词而不是像 Lenason 或 Anna-Lena 或 Malena 这样的单词的一部分的结果
我该如何编写这样的查询,而不是
"select * from users where name like '%LENA%'"
它应该是什么?
If I search for LENA, I only want to get results where LENA is one word and not part of a word like Lenason or Anna-Lena or Malena
How do I write such a query, not
"select * from users where name like '%LENA%'"
What should it be instead?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用这个:
尝试一下,它会起作用,而且太简单了,开头和结尾都有 2 个空格。
它的查询很长但很快。您还可以使用全文搜索、Concat、正则表达式...但对我来说,我喜欢简单,只需在 % 之前添加一些空格即可。
但是,您可以尝试更短但更慢的查询:
Use this one:
Try it, it will work, and too simple with 2 spaces at start and end.
Its long but fast query. You can also use Full Text Search, Concat, Regex ... but for me, I like simple, just add some space before %.
However, you can try shorter but slower query:
您可以使用
REGEXP
:You could use
REGEXP
:您最好查看 全文搜索 为此。
否则我认为你会被困在做这样的事情,
这将非常低效,因为它需要全表扫描。
You might be better off looking into Full Text Search for this.
Otherwise I think you're stuck doing something like this
Which will be pretty inefficient as it requires a full table scan.