SQLのWHERE句で2つの列を結合する 質問する

SQLのWHERE句で2つの列を結合する 質問する

私の SQL では、WHEREandLIKE句を使用して検索を実行しています。ただし、2 つの列とを組み合わせた値に対して検索を実行する必要がありますfirst_namelast_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%'

おすすめ記事