I have a php form that searches a SQL database. There are say eight form fields each of which are optional. If everything is left blank, the query will return the entire database. If one field is filled out it will filter by one field, two it will filter by two, etc. I haven’t had any issues until I wanted the ability to search for null entries. So for example I want to search where the customers has a last name but DOES NOT have a primary phone number. I’ve been working for a couple hours and can’t think of a simple way to implement something like this. I envision it as you type a keyword into the search field to search where the item is null on top of everything else. So if I put “Smith” into last name and “NULL” into phone number it would work with my above example. Below is my current code.
$query = "SELECT *
FROM customer_search_view
WHERE COALESCE(customer_search_view.first_name,'') LIKE $firstName AND
COALESCE(customer_search_view.last_name,'') LIKE $lastName AND
COALESCE(customer_search_view.customer_id,'') LIKE $customerId AND
COALESCE(customer_search_view.primary_phone,'') LIKE $primaryPhone AND
COALESCE(customer_search_view.email,'') LIKE $email AND
COALESCE(customer_search_view.store,'') LIKE $store AND
COALESCE(customer_search_view.sales_associate,'') LIKE $salesAssociate AND
COALESCE(customer_search_view.bdr_associate,'') LIKE $bdrAssociate AND
COALESCE(customer_search_view.status,'') LIKE $status AND
COALESCE(customer_search_view.lead_category,'') LIKE $leadCategory
ORDER BY created_on DESC LIMIT 0,100";
If there is anyway to search where something is LIKE NULL it would be a quick fix as well.
the only way to find NULL is to use
COALESCE(customer_search_view.primary_phone,'') IS NULLso you would need to extend your variables to be likeIf you can’t change your front end you could loop through values before your query such as