望ましい結果:
最初に検出された真の SELECT 式の結果のみを返します。
説明:
したがって、3 つの異なる SELECT 式があります。
- SELECT * FROM テーブル WHERE column1 = 'sometext' AND column2='1'
- SELECT * FROM テーブル WHERE column1 = 'someothertext' AND column2='2'
- SELECT * FROM テーブル WHERE column1 = 'somethirdtext' AND column2='3'
1 からの結果が必要です。1 が NULL を返している場合は、選択番号 2 からの結果が必要です。選択番号 2 が NULL を返している場合は、選択番号 3 を使用したいと考えています。
true である各条件に対して複数の行が返されることを期待していることに注意してください-そして、SELECT 1) 2) または 3) のいずれかからの結果のみが必要です (この順序で)
1 つの SELECT 式からのみ結果を返すことが重要であるため、2. と 3. が何かを返すとしても、1. からの結果のみが必要です。
私が今持っているコードは、その予想されるロジックに従っていますが、以下のSELECTSのいくつかによって複数の行が返されると、エラーが発生します:
1242 - サブクエリが複数の行を返す
今のコード:
SELECT IFNULL( (SELECT * FROM table WHERE column = 'sometext'), IFNULL( (SELECT * FROM table WHERE column = 'someothertext'), IFNULL( (SELECT * FROM table WHERE column = 'somethirdtext'), 0 ) ) )