有没有办法从下表中选择数据?
SELECT * FROM profile WHERE fname+" "+lname LIKE '%$name%'
例如:
fname = "Lady"
lname = "Gaga"
$name = "lady g" is match
就像facebook搜索引擎一样,当我输入一个全名时,它会显示结果,甚至包括非破坏空间的全名。
答案 0 :(得分:2)
确定 - 你可以使用mysql CONCAT()
函数 -
SELECT * FROM profile WHERE CONCAT(fname," ",lname) LIKE '%$name%'
CONCAT()
函数可以使用许多参数,引用的字符串作为其文字值,字段名称从被查询的表中计算其值。因此fname
和lname
必须是数据库中字段的实际名称。
答案 1 :(得分:1)
是的,请使用CONCAT()功能,如下所示:
SELECT * FROM profile WHERE CONCAT(fname,' ',lname) LIKE '%$name%'
答案 2 :(得分:0)
在MySQL中,您需要使用CONCAT()
或CONCAT_WS()
来连接两个对象。
SELECT * FROM profile WHERE CONCAT(fname, ' ', lname) LIKE '%$name%'
OR
SELECT * FROM profile WHERE CONCAT_WS(' ', fname, lname) LIKE '%$name%'
答案 3 :(得分:0)
您可以使用CONCAT
功能。请记住,这可能会导致性能不佳,因为它不能正确使用索引。
SELECT * FROM profile WHERE CONCAT(fname," ",lname) LIKE '%$name%'
答案 4 :(得分:0)
您可以使用CONCAT_WS
:
SELECT * FROM profile WHERE CONCAT_WS(' ', fname, lname) LIKE '%' . $name . '%'
当然要记住要逃避输入(或使用prepared statements)。