0

指定されたリストのインデックスに基づいてデータベース行をフェッチすることは可能ですか?

「ストレージ」と呼ぶテーブルがあります。ストレージには、あらゆる種類の文字列値を含めることができます。以下のリストは、ストレージ内の可能な値のリストを示しています。テーブルに存在するかどうかはわかりません。しかし、指定されたリストの順序に応じて、最初に見つかった値を選択したい

リスト:

  1. ふー
  2. バー
  3. フーバー
  4. バーフー
  5. ウーフ

1.Foo と 2.bar は存在しませんが、3.foobar は存在します。3.foobar は、取得したいものです。

うまくいけば、私は私の質問で十分に明確です。

前もって感謝します。

4

1 に答える 1

1
select col
from your_table
where col in('foo','bar','foobar')
order by field(col, 'foo','bar','foobar')
limit 1

このFIELD()関数は、リスト内の値のインデックスを返します。

于 2013-08-10T14:17:57.787 に答える