php - 创建搜索字段

标签 php mysql search

所以我正在这个网站上工作,我刚刚添加了一个搜索按钮。 当我使用像

这样的简单搜索查询时,一切正常
SELECT `student_id` FROM `student` WHERE `username` LIKE 'jo%' OR `firstname` LIKE 'jo%' OR `lastname` LIKE 'jo%' OR `surname` LIKE 'jo%' OR `email` LIKE 'jo%' 

这将通过查看“用户名”、名字、姓氏等字段,从数据库中返回名称与 john 匹配的所有 id。

然而问题是,当用户在搜索参数之间插入空格时(这本质上意味着他正在使用两个名字搜索学生),结果什么也没有。

我认为这是因为它在每个字段中独立地寻找搜索参数(例如“john doe”)。

我该如何解决这个问题。

最佳答案

我不太确定您希望如何处理这些内容,您可以将其添加到 WHERE 子句中,以便还搜索名字和姓氏字段(中间有空格)。

CONCAT(`firstname`, ' ', `lastname`) LIKE 'jo%'

或者您可能想要删除通配符并进行精确搜索。

CONCAT(`firstname`, ' ', `lastname`) = 'jo'

关于php - 创建搜索字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19188196/

相关文章:

php - mysql语法有问题吗

php - SQLSTATE [HY000] [2002] Laravel 宅基地内的连接被拒绝

php - Laravel 4 表单生成器自定义字段宏

mysql - 如何从今天开始每 3 小时对 MySQL 中的数据进行分组?

php - 锁定在 MyISAM 表 (MySQL) 和 PHP

mysql - 将数组传递给MySQL存储例程

php - 使用中间表从另一个表获取信息

java - 阵列标价

php - 如何使用搜索方法使用选择标签选项在 PHP、MYSQL 中搜索 id、电子邮件、用户名?

url - 有没有一种方法可以让 URL 进行搜索而不指定网站?