私のテーブルには、所有者の情報を保存しています。所有者は、名前または国籍、またはその両方を持つことができます。
データベースにクエリを実行する必要があります。これは、名前が存在するかどうかを確認してから、名前または国籍を取ります。
現在、以下のクエリを使用しています:
SELECT id,name,nationality FROM owners
大丈夫ですが、名前または国籍を1列にまとめたいです。
「カスタム列」と呼ばれるものの一般的な構文は*expression* AS *column_name*
. たとえば1 AS one
、値が常に整数「1」である「one」という列が表示されます。あなたがする必要があるのは、またはのいずれname
かnationality
に評価される式を作成し、その式に列名を与えることです。
空の名前を として保存すると仮定するとNULL
、次を使用できます。
SELECT id, COALESCE(name, nationality) AS name_or_nationality FROM owners
空の名前が空の文字列として格納されている場合は、別の構成を使用する必要があります。
SELECT id, CASE WHEN name THEN name ELSE nationality END AS name_or_nationality FROM owners
SELECT id, IF(name, name, nationality) AS name_or_nationality FROM owners
クエリで単純なif /else
条件を使用できます。
以下のように:
SELECT id,if(name='',nationality,name) as ownerinfo FROM owners
値が空白ではなく NULL に設定されていると仮定します。
SELECT IF(name IS NULL, nationality, name) AS name_or_nationality FROM owners
MySQL の条件ステートメントの説明: http://timmurphy.org/2009/08/13/inline-if-and-case-statements-in-mysql/
name が null の場合、次の SQL select ステートメントは値を返します。
SELECT id,
case when ifnull(name,'') = ''
then nationality
else name
end as name_equiv
FROM owners;