Reputation: 4502
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
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