mysql从表中选择*列+空间+列,如“%query%”
对于搜索函数,我需要能够通过组合两列获得mysql函数来显示结果 更准确地说:我在数据库中有一个名为members的表,其中有一个列名为firstname,另一个列名为lastname,我需要使用它来实现此目的。当有人键入全名时,例如Jane Doe,我希望查询查看是否将firstname+空格组合在一起lastname带来任何结果 到目前为止,我的代码是:mysql从表中选择*列+空间+列,如“%query%”,mysql,select,Mysql,Select,对于搜索函数,我需要能够通过组合两列获得mysql函数来显示结果 更准确地说:我在数据库中有一个名为members的表,其中有一个列名为firstname,另一个列名为lastname,我需要使用它来实现此目的。当有人键入全名时,例如Jane Doe,我希望查询查看是否将firstname+空格组合在一起lastname带来任何结果 到目前为止,我的代码是: $poster = mysql_query("SELECT id FROM members WHERE (firstname'&n
$poster = mysql_query("SELECT id FROM members WHERE (firstname' 'lastname) LIKE '%$search%'") or die(mysql_error());
$poster = mysql_fetch_object($poster);
我知道这可能是错的,这是我最近尝试过的一次尝试,尝试用括号括住firstname+lastname位,等等。。。但是,如果您有任何帮助,我们将不胜感激。使用CONCAT功能:
SELECT id FROM members
WHERE CONCAT(firstname, ' ', lastname) LIKE ?
使用CONCAT函数:
SELECT id FROM members
WHERE CONCAT(firstname, ' ', lastname) LIKE ?
试一试
试一试
我相信你要找的是:
$name_var = 'John Doe';
// Example 1 - using concatenation
$sql = "SELECT id FROM members WHERE CONCAT(firstname, ' ', lastname) = '$name_var'";
上面的语句将搜索名为John、姓为Doe的所有内容
这是相当无效的,因为我相信在mysql中,每次都必须对CONCAT进行评估
我建议在PHP中验证字符串是否如您所期望的那样是两个单词
$name_var = 'John Doe';
// this will split the string based on spaces
$names = explode(' ', $name_var);
$first_name = $names[0];
$last_name = $names[1];
// Example 2 - searching each field
$sql = "SELECT id FROM members WHERE firstname = '$first_name' AND lastname = '$last_name'";
上面的语句仍然会搜索名为John、姓为Doe的所有内容
在上面的陈述中,您实际上只是根据精确的值进行搜索,因此它更有效。如果要定期运行此查询,还应该向mysql表中的firstname和lastname字段添加索引,因为这将大大提高速度
希望这有帮助
汤姆我相信你要找的是:
$name_var = 'John Doe';
// Example 1 - using concatenation
$sql = "SELECT id FROM members WHERE CONCAT(firstname, ' ', lastname) = '$name_var'";
上面的语句将搜索名为John、姓为Doe的所有内容
这是相当无效的,因为我相信在mysql中,每次都必须对CONCAT进行评估
我建议在PHP中验证字符串是否如您所期望的那样是两个单词
$name_var = 'John Doe';
// this will split the string based on spaces
$names = explode(' ', $name_var);
$first_name = $names[0];
$last_name = $names[1];
// Example 2 - searching each field
$sql = "SELECT id FROM members WHERE firstname = '$first_name' AND lastname = '$last_name'";
上面的语句仍然会搜索名为John、姓为Doe的所有内容
在上面的陈述中,您实际上只是根据精确的值进行搜索,因此它更有效。如果要定期运行此查询,还应该向mysql表中的firstname和lastname字段添加索引,因为这将大大提高速度
希望这有帮助
汤姆非常感谢!我会记下CONCAT函数,以前从未听说过,非常感谢!我会记下CONCAT函数,以前从未听说过