所以我正在这个网站上工作,我刚刚添加了一个搜索按钮。 当我使用像
这样的简单搜索查询时,一切正常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/