2 つの文字列列がa
ありb
、テーブル内にありますfoo
。
select a, b from foo
a
値と を返しますb
。ただし、 and の連結はa
機能b
しません。私は試した :
select a || b from foo
と
select a||', '||b from foo
コメントからの更新: 両方の列は typecharacter(2)
です。
2 つの文字列列がa
ありb
、テーブル内にありますfoo
。
select a, b from foo
a
値と を返しますb
。ただし、 and の連結はa
機能b
しません。私は試した :
select a || b from foo
と
select a||', '||b from foo
コメントからの更新: 両方の列は typecharacter(2)
です。
問題は値のヌルにありました。その場合、連結はヌルでは機能しません。解決策は次のとおりです。
SELECT coalesce(a, '') || coalesce(b, '') FROM foo;
連結にはPostgreSQLのCONCAT関数を使用することをお勧めします
例:select CONCAT(first_name,last_name) from person where pid = 136
column_a || を使用している場合 ' ' || 2 列の連結のための column_b 。 column_a または column_b のいずれかの値が null の場合、クエリは null 値を返します。すべての場合に優先されるとは限りません..したがって、これの代わりに
||
使用する
CONCAT
それらのいずれかに値がある場合、関連する値を返します
CONCAT 関数は、古い postgreSQL バージョンでは動作しないことがあります
CONCATを使用せずに問題を解決するために使用したものを参照してください
u.first_name || ' ' || u.last_name as user,
または、使用することもできます
"first_name" || ' ' || "last_name" as user,
2 番目のケースでは、first_name と last_name に二重引用符を使用しました
これが役立つことを願っています、ありがとう
PHPのLaravelフレームワーク、 検索first_name、last_nameフィールドをフルネーム検索のように使用しています
|| の使用 symbol または concat_ws()、concat() メソッド
$names = str_replace(" ", "", $searchKey);
$customers = Customer::where('organization_id',$this->user->organization_id)
->where(function ($q) use ($searchKey, $names) {
$q->orWhere('phone_number', 'ilike', "%{$searchKey}%");
$q->orWhere('email', 'ilike', "%{$searchKey}%");
$q->orWhereRaw('(first_name || last_name) LIKE ? ', '%' . $names. '%');
})->orderBy('created_at','desc')->paginate(20);
これは魅力的でした!!!