我有一张桌子,里面有联系方式。此表有1列与名称相关。看起来是这样的:

Sort Name:
Doe, John
Clinton, Bill
Dooby Doo, Scooby

遗憾的是,没有名字/姓氏列,无法添加它们。
如果用户输入搜索词“john doe”,有没有办法让mysql返回“doe,john”列作为结果?
编辑:作为RHSeeger回答的后续,我将做些什么
john doe

进入之内
$name(0=>'john', 1=>'doe')

使用php
谢谢你到目前为止的帮助

最佳答案

我的想法是:

SELECT * FROM tablename
WHERE LOWER(sort_name) LIKE '%name1%'
  ...
  AND LOWER(sort_name) LIKE '%nameN%'

其中。。。是单独的、小写的“单词”(空格、逗号?)以用户请求的名称。
编辑:值得注意的是,对于一个相当大的数据集,像这样的搜索将是缓慢的。如果你要拥有大量的数据,你可以考虑使用一个搜索引擎(比如SOLR)来搜索东西,而使用MySQL只是按ID查找。

关于php - 使用LIKE搜索名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3515218/

10-14 17:06
查看更多