php - 複数カラム - sqlserver 文字列結合 null




WHERE句のSQLで2つの列を結合する (2)

私のSQLでは、 WHERE句とLIKE句を使用して検索を実行しています。 ただし、 first_namelast_name 2つの列の値を組み合わせて検索する必要があり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つの列の合計値であるため、明らかにこれは機能しません。


これを試して:

SELECT * 
FROM customers 
WHERE concat(first_name,' ',last_name) like '%John Smith%';

参照:
MySQLの文字列関数


以下を使用してください:

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%'




sql