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.
select column1 || ' ' || column2 as whole_name FROM tablename; Here || is the concat operator used for concatenating them to single column and ( '' ) inside || used for space between two columns.
Select the same number of columns for each query. Corresponding columns must be the same general data type. Corresponding columns must all either allow null values or not allow null values. If you want to order the columns, specify a column number because the names of the columns you are merging are probably different.
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.
CONCAT
or
CONCAT_WS
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With