私の SQL では、WHERE
andLIKE
句を使用して検索を実行しています。ただし、2 つの列とを組み合わせた値に対して検索を実行する必要がありますfirst_name
。last_name
WHERE customers.first_name + customers.last_name LIKE '%John Smith%'
これはうまくいきませんが、どうすればこのようなことができるのか疑問に思いました。
次のように、2 つの列で検索を分けてみました。
WHERE customers.first_name LIKE '%John Smith%' OR customers.last_name LIKE '%John Smith%'
しかし、検索クエリはこれら 2 つの列を組み合わせた値であるため、明らかにこれは機能しません。
ベストアンサー1
以下を使用します。
WHERE CONCAT(customers.first_name, ' ', customers.last_name) LIKE '%John Smith%'
これを意図したとおりに動作させるには、名と姓をトリミングする必要があります。つまり、先頭または末尾に空白を含めないでください。データベースに挿入する前に、PHP で文字列をトリミングすることをお勧めします。ただし、次のようにクエリにトリミングを組み込むこともできます。
WHERE CONCAT(TRIM(customers.first_name), ' ', TRIM(customers.last_name)) LIKE '%John Smith%'