私のテーブルに私は所有者の情報を格納しています。所有者は、名前または国籍またはその両方を持つことができます。MySQLで1つの列または他の列を表示する方法
名前が存在するかどうかをチェックし、名前または国籍を取るデータベースを照会する必要があります。
現在、私は、クエリの下に使用しています:
SELECT id,name,nationality FROM owners
それは大丈夫だが、私は、単一の列の下の名前や国籍をしたいです。
私のテーブルに私は所有者の情報を格納しています。所有者は、名前または国籍またはその両方を持つことができます。MySQLで1つの列または他の列を表示する方法
名前が存在するかどうかをチェックし、名前または国籍を取るデータベースを照会する必要があります。
現在、私は、クエリの下に使用しています:
SELECT id,name,nationality FROM owners
それは大丈夫だが、私は、単一の列の下の名前や国籍をしたいです。
「カスタム列」と呼ばれる一般的な構文は*expression* AS *column_name*
です。例えば、1 AS one
は、値が常に整数 "1"である "one"という列を与えます。あなたがする必要があるのは、name
またはnationality
のいずれかと評価され、その式に列名を与える式を作成することです。あなたはNULL
として空の名前を格納すると仮定すると、
、あなたが使用することができます。
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
はあなたが行うことができます。
SELECT id, COALESCE(name, nationality) AS name_or_nationality FROM owners
を空の名前は空の文字列として保存されている場合は、いくつかの別の構文を使用する必要があります単純なif /else
の条件で照会します。以下のような
:
SELECT id,if(name='',nationality,name) as ownerinfo FROM owners
名がnullの場合、このSQL select文は、値を返します。
SELECT id,
case when ifnull(name,'') = ''
then nationality
else name
end as name_equiv
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/
+1「COALESCE」は、それを知らなかった、ty – kontur