SQLデータベースを検索するphpフォームがあります。たとえば、8つのフォームフィールドがあり、それぞれがオプションです。すべてを空白のままにすると、クエリはデータベース全体を返します。1つのフィールドに入力すると、1つのフィールドでフィルタリングされ、2つのフィールドでフィルタリングされます。nullエントリを検索する機能が必要になるまで、問題は発生していません。たとえば、顧客の名前はあるが、主要な電話番号がない場所を検索したいとします。私は数時間働いていますが、このようなものを実装する簡単な方法を考えることはできません。検索フィールドにキーワードを入力して、他のすべての上にアイテムがnullである場所を検索するときに想像します。したがって、「Smith」を姓に、「NULL」を電話番号に入れると、上記の例で機能します。以下は私の現在のコードです。
$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";
とにかく何かがLIKENULLである場所を検索することがあれば、それも簡単な修正になります。