php - 使用 LIKE 搜索名称

标签 php mysql

我有一个包含联系信息的表格。该表有 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/

相关文章:

mysql - 数组字段存入MySQL数据库

php - 使用 curl 登录到 https 站点

javascript - ajax() 考虑值 null jQuery

php - 选中复选框时如何为 SQL 表提供样式?

php - 如何显示从 Blade 到 Blade 选择的日期?

php - 一次插入多个值并同时检查重复值

mysql - 删除级联时不删除关联条目

php - mysql 产品和变体数据库架构

php - PHP while 循环中的 MySQL 更新

php - 如何在codeigniter中的两个不同表中插入和更新值