php mysql 搜索查询通配符问题

发布于 2024-09-18 09:09:30 字数 193 浏览 3 评论 0原文

如果我搜索 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

想你只要分分秒秒 2024-09-25 09:09:30

使用这个:

select * from users where name like '% LENA %' OR name like 'LENA %' OR name like '% LENA' OR name like 'LENA'

尝试一下,它会起作用,而且太简单了,开头和结尾都有 2 个空格。
它的查询很长但很快。您还可以使用全文搜索、Concat、正则表达式...但对我来说,我喜欢简单,只需在 % 之前添加一些空格即可。

但是,您可以尝试更短但更慢的查询:

SELECT * FROM users  WHERE name REGEXP '(^|\s+)LENA($|\s+)' 

Use this one:

select * from users where name like '% LENA %' OR name like 'LENA %' OR name like '% LENA' OR name like 'LENA'

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:

SELECT * FROM users  WHERE name REGEXP '(^|\s+)LENA($|\s+)' 
恍梦境° 2024-09-25 09:09:30

您可以使用REGEXP

SELECT fields 
  FROM users
 WHERE name REGEXP '(^|\s+)LENA($|\s+)'

You could use REGEXP:

SELECT fields 
  FROM users
 WHERE name REGEXP '(^|\s+)LENA($|\s+)'
欢烬 2024-09-25 09:09:30

您最好查看 全文搜索 为此。

否则我认为你会被困在做这样的事情,

"select * from users WHERE CONCAT(' ',name, ' ') like '% LENA %'"

这将非常低效,因为它需要全表扫描。

You might be better off looking into Full Text Search for this.

Otherwise I think you're stuck doing something like this

"select * from users WHERE CONCAT(' ',name, ' ') like '% LENA %'"

Which will be pretty inefficient as it requires a full table scan.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文