0

クエリを実行する必要があるテーブルには、NULL 値、空の文字列、またはテキスト、数値などを持つことができるフィールドがあります。

たとえば、フィールドid、field1、field2、field3、field4を持つテーブル「data」があります。

id は自動インクリメント キーであるため、値が含まれますが、他の 3 つのフィールドには上記のインスタンスのいずれかを含めることができます。

したがって、テーブルに対するクエリの結果は、id=1、field1=NULL、field2=''、field3='some text'、field4='5' となる可能性があります。

SELECT ステートメントで、NULL である各フィールドに対して空の文字列を返すにはどうすればよいですか?

ありがとう!

追加情報

すでにいくつかの返信を受け取るまで、これについて言及するのを忘れていたので、回答が変わるかどうかはわかりません.

また、テーブル内のフィールドの一部は別のテーブルの ID であるため、内部結合を行っていますが、「データ」テーブルの id フィールドに値がある場合とない場合があります。

上記の「データ」テーブルを使用して、field4 が 5 (上記で最初に定義された「5」ではない) で、テーブル「名前」の ID である場合、結合は次のようになります。

INNER JOIN name n ON n.id = data.field4

一部の行が結果セットに返されないのは結合だと思います。どうすればそれを処理できますか?

誰かがすでに答えている場合は、ありがとうございます。

4

3 に答える 3

2

IFNULLを使用する

SELECT id, IFNULL(field1,''), IFNULL(field2,''), IFNULL(field3,'')
FROM data
于 2013-01-18T11:21:06.317 に答える
0

LEFT JOIN - それが答えです。

INNER JOINS を LEFT JOINS に変更したところ、id フィールドが空の行を含むすべての行を取得しています。

もちろん、最初の質問の「[追加情報] 」のに提供した情報がすべてではありません。すみません、みんな、悪いです。サリルは、私が最初に提供した情報に基づいて正しく答えました。

于 2013-01-18T19:09:34.330 に答える
0
SELECT id, COALESCE(field1,''), COALESCE(field2,''), COALESCE(field3,'')
FROM   data
于 2013-01-18T11:19:45.873 に答える