在MySQL数据库中搜索全名或名字或姓氏,在单独的列中使用名字和姓氏

G.T*_*son 20 php mysql

我正在使用现有数据库,该数据库在数据库中分隔了名字和姓氏.我需要创建一个函数,它将获取一个搜索输入并返回结果.说我的数据库有像....

nameFirst nameLast
Joe       Smith
Joe       Jones
Joe       Brown
Run Code Online (Sandbox Code Playgroud)

我怎么能使用MySql获取一个搜索输入,就是说'Joe Smith'然后得到他的行?但是,如果我只在搜索字段中放入'Joe',那么将它们全部归还?我是否需要用空格来爆炸?谢谢!

csi*_*csi 49

SELECT * 
FROM table
WHERE CONCAT( nameFirst,  ' ', nameLast ) LIKE  '%Joe%'  
Run Code Online (Sandbox Code Playgroud)

务必清理任何用户提交的参数,例如"Joe"

  • 可以在数据库表中添加`fullname`字段!它会快得多. (4认同)
  • 我使用了codeigniter activerecord,但这是我最终使用的... $ term = $ search_array ['term']; $ query = $ this-> db-> query("SELECT*FROM Database WHERE CONCAT(nameFirst,'',nameLast)LIKE'%$ term%'"); (2认同)