php - 在表的多个字段中搜索字符串

标签 php mysql sql

我有一个表 User,其中包含字段 (id, first_name, middle_name, last_name)。

我想编写一个查询以通过他的名字查找用户。该名称可以是名字、中间名或姓氏。

$sql = "SELECT * FROM user 
        WHERE first_name like '%$name%' OR  
              middle_name like '%$name%' OR
              last_name like '%$name%'";

查询效率高吗? (暂时留下安全问题。)

最佳答案

更改表并在 First_name,second_name,last_name 上添加复合全文索引,然后使用此查询

select * 
from table_name 
where match (`First_name`,`second_name`,`last_name`) against('name')

它比您的查询快得多。

关于php - 在表的多个字段中搜索字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10006373/

相关文章:

PHP数组合并递归问题

mysql - 具有 4 个值(1 个或多个)的字段的建模问题

mysql - 查询以包含 checkout 表中不存在的内容并排除尚未 checkin 的内容

sql - 去除单词中的空格

sql - 如何将数据从同一个表中的一列复制到另一列?

php - 图像和进度条未在 Internet Explorer 中加载,但在 Firefox、Chrome 等中加载

php - 使用php对数据库表中的特定行进行计算

php - Laravel 5 类 'App\Http\Controllers\Cache' 未找到

php - 将表单数据输入到 MySql 表中,然后直接在 PHP 中搜索该表

MySQL 添加时间戳值、添加结果集和按日期分组