是否有办法从下面的表中选择数据?
SELECT * FROM profile WHERE fname+" "+lname LIKE '%$name%'
例如:fname = "Lady"
lname = "Gaga"
$name = "lady g" is match
就像facebook搜索引擎一样,当我输入一个全名时,它会显示结果,即使全名包含不间断的空格。
你可以使用mysql的CONCAT()
函数
SELECT * FROM profile WHERE CONCAT(fname," ",lname) LIKE '%$name%'
CONCAT()
函数可以接受多个参数,引号中的字符串作为其文字值,字段名计算为所查询表中的值。因此,fname
和lname
必须是数据库中字段的实际名称。
请参阅此处查看更多深入的文档
是的,使用CONCAT()函数,如下所示:
SELECT * FROM profile WHERE CONCAT(fname,' ',lname) LIKE '%$name%'
在MySQL中,您需要使用CONCAT()
或CONCAT_WS()
来连接两个对象。
SELECT * FROM profile WHERE CONCAT(fname, ' ', lname) LIKE '%$name%'
或
SELECT * FROM profile WHERE CONCAT_WS(' ', fname, lname) LIKE '%$name%'
- CONCAT
- CONCAT_WS
您将使用CONCAT
函数。请记住,这可能会有很差的性能,因为它不能正确地使用索引。
SELECT * FROM profile WHERE CONCAT(fname," ",lname) LIKE '%$name%'
您可以使用CONCAT_WS
:
SELECT * FROM profile WHERE CONCAT_WS(' ', fname, lname) LIKE '%' . $name . '%'
当然要记得转义输入(或者使用预处理语句)