如何选择两列作为一个?

Bob*_*bby 34 mysql

我正在尝试使用PHP从MySQL数据库中搜索两个字段.

例如

mysql_query("
  SELECT (first_name,last_name) As name
  FROM people
  WHERE (name LIKE '%" . $term . "%')
");
Run Code Online (Sandbox Code Playgroud)

我认为这是使用的代码,但无济于事.我做了这个已经有一段时间了,我不记得究竟如何达到预期的效果.

dee*_*see 75

你正在寻找这个CONCAT功能.

mysql_query("SELECT CONCAT(first_name, last_name) As name FROM people WHERE (CONCAT(first_name, last_name) LIKE '%" . $term . "%')");
Run Code Online (Sandbox Code Playgroud)

甚至...

mysql_query("SELECT CONCAT(first_name, ' ', last_name) As name FROM people WHERE (CONCAT(first_name, ' ', last_name) LIKE '%" . $term . "%')");
Run Code Online (Sandbox Code Playgroud)

我无法解释你背后的原因(...但也许有人可以发表评论?),但你不能使用name别名来搜索这两个字段,你必须CONCAT再次明确.

  • @Vache,您不能在where子句中使用别名,因为where子句可以在解析别名之前执行.如果要使用别名,请将其放在`having`子句中.这可能会影响查询的运行时,因为您在应用过滤器之前强制SQL解析别名. (4认同)