Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql从表中选择*列+空间+列,如“%query%”_Mysql_Select - Fatal编程技术网

mysql从表中选择*列+空间+列,如“%query%”

mysql从表中选择*列+空间+列,如“%query%”,mysql,select,Mysql,Select,对于搜索函数,我需要能够通过组合两列获得mysql函数来显示结果 更准确地说:我在数据库中有一个名为members的表,其中有一个列名为firstname,另一个列名为lastname,我需要使用它来实现此目的。当有人键入全名时,例如Jane Doe,我希望查询查看是否将firstname+空格组合在一起lastname带来任何结果 到目前为止,我的代码是: $poster = mysql_query("SELECT id FROM members WHERE (firstname'&n

对于搜索函数,我需要能够通过组合两列获得mysql函数来显示结果

更准确地说:我在数据库中有一个名为members的表,其中有一个列名为firstname,另一个列名为lastname,我需要使用它来实现此目的。当有人键入全名时,例如Jane Doe,我希望查询查看是否将firstname+空格组合在一起lastname带来任何结果

到目前为止,我的代码是:

$poster = mysql_query("SELECT id FROM members WHERE (firstname'&nbsp'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函数,以前从未听说过