我在弄清楚如何构造我的sql查询时遇到了一些问题
假设我有一个名为user_info的表,有两个字段,firstnamelastname
如果$name = "Bill Jones";
如何搜索变量名中组合了firstnamelastname但在表中分开的表。
另一个问题是,由于这是一种名称搜索,用户可能只在输入中键入"bill",或者只键入"jones",所以如何组合查询中的两个字段来运行类似的sql select?
谢谢

最佳答案

  select firstname , lastname from table where
  concat(firstname, ' ', lastname) like '%$name%'

如果"Bill Jones""Jones Bill"不同
那就考虑用这个
  select firstname , lastname from table where
  concat(firstname, ' ', lastname) like '%$name%' OR
  concat(lastname, ' ', firstname) like '%$name%'

在你的情况下用这个
 select firstname , lastname from table where
  concat(firstname, ' ', lastname) like CONCAT('%', ?, '%')  OR
  concat(lastname, ' ', firstname) like CONCAT('%', ?, '%')

编辑:
 select firstname , lastname from table1 where
 concat(firstname, ' ', lastname) like CONCAT('%', ?, '%')  OR
 concat(lastname, ' ', firstname) like CONCAT('%', ?, '%')  OR
 lastname LIKE substring_index($name, ' ',-1) OR
 firstname LIKE substring_index($name, ' ',1)

demo

10-08 05:16