Bobby
Bobby

Reputation: 4502

How to select two columns as one?

I'm trying to search two fields as one from a MySQL database using PHP.

e.g.

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

I thought that this was the code to use, but to no avail. It has been a while since I've done this and I can't remember exactly how to achieve the desired result.

Upvotes: 41

Views: 74081

Answers (2)

Sam Roberts
Sam Roberts

Reputation: 199

CONCAT

or

CONCAT_WS

Upvotes: 4

dee-see
dee-see

Reputation: 24078

You're looking for the CONCAT function.

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

or even...

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

I couldn't explain you the reasons behind this (...but maybe someone can leave a comment?), but you can't use the name alias to search for both fields, you have to explicitly CONCAT again.

Upvotes: 89

Related Questions