0

次のようなクエリを実行しています。

select x from table where c in ('variable','test','ok')

一致するすべての C の結果を取得します (変数とテスト)。ただし、c には ok が存在しないため、何も取得できません。null または 0 の結果でさえありません。

in 条件の用語に一致するものが見つからない場合でも、結果が必要であることを mysql に伝えるにはどうすればよいですか?

例:

result 
x = 12
x = 25
x = NOT FOUND

前もって感謝します

4

2 に答える 2

1

これに対する通常のアプローチは、固定データと実際のテーブルのサブクエリを結合する外部結合です。

select v1.name, coalesce(t.x, 'NOT FOUND')
from (
  select 'variable' as name union all
  select 'test' union all
  select 'x') v1
left join t on t.c = v1.name

SQL フィドル

于 2015-04-29T08:15:01.820 に答える