我正在使用一个现有的数据库,该数据库的名字和姓氏在数据库中分开。我需要创建一个函数,它将接受一个搜索输入并返回结果。说我的数据库中有如下的结构....在单独的列中搜索名字或姓氏在MySQL数据库中的名字和姓氏
nameFirst nameLast
Joe Smith
Joe Jones
Joe Brown
我怎么可能,使用MySQL,需要搜索输入是说“张三”,只是让他的行?但是,如果我只在搜索字段中放入“Joe”,请全部归还它们?我需要用一个空格来爆炸字符串吗?谢谢!
我正在使用一个现有的数据库,该数据库的名字和姓氏在数据库中分开。我需要创建一个函数,它将接受一个搜索输入并返回结果。说我的数据库中有如下的结构....在单独的列中搜索名字或姓氏在MySQL数据库中的名字和姓氏
nameFirst nameLast
Joe Smith
Joe Jones
Joe Brown
我怎么可能,使用MySQL,需要搜索输入是说“张三”,只是让他的行?但是,如果我只在搜索字段中放入“Joe”,请全部归还它们?我需要用一个空格来爆炸字符串吗?谢谢!
SELECT *
FROM table
WHERE CONCAT(nameFirst, ' ', nameLast) LIKE '%Joe%'
一定要消毒任何用户提交的参数,如“乔”
这可能会在一张大桌子上很慢.. – 2012-04-06 17:20:38
我用codeigniter主动记录,但这里是什么我结束了使用... $ term = $ search_array ['term']; (“SELECT * FROM Database WHERE CONCAT(nameFirst,'',nameLast)LIKE'%$ term%'”); – 2012-04-06 18:22:09
它为我工作。 – 2016-08-12 15:16:53
你还需要找到“史密斯,乔”或“斯密约瑟”? – Randy 2012-04-06 17:13:16
爆炸字符串是一种方法,但如果涉及中间名或初始名称,该怎么办? – dqhendricks 2012-04-06 17:13:23
搜索很可能会像'乔史密斯'...也有一些实例在数据库中有.Jrs和这样的 – 2012-04-06 17:17:00