1

愛するコミュニティの皆さん、こんにちは。

あなたの時間と関与に前もって感謝します.
私は重大な問題に出くわしました:

クエリを実行するテーブルを簡略化すると、次のようになります。

T1
ID - キー - 値
1 - K1 - A*
2 - K2 - Q*
3 - K3 - AS*
4 - K4 - Z1*

このデータベースの「*」はワイルドカードとして機能します。つまり、Aで始まるすべての VALUE はK1でカバーされ、 Z1で始まるすべての VALUEはK4でカバーされます。
クエリは次のようになります。


T1
WHERE VALUE='AS01' からキーを選択

問題は、結果としてキーK1K3を取得することです。列が 1 つしかないため、「Between」関数を使用しません。
テーブルには 50 万を超えるエントリがあるため、">=" 演算子も使用できません。さらに、">=" 演算子は、結果としてK2 と K4を配信します...

ワイルドカードと LIKE 関数を使用してみましたが、正しい結果が得られないようです。

誰かがこの問題について私を助けてくれたら、私は感謝します. 前もって感謝します

あなたの、ジェニー

4

1 に答える 1

0
SELECT KEY
FROM T1
WHERE VALUE='A*'
   OR VALUE='AS*'
   OR VALUE='AS0*'
   OR VALUE='AS01*'

SELECT KEY
FROM T1
WHERE VALUE in ('A*','AS*','AS0*','AS01*')

以下の問題は、AB *を見つけること
です。私は、それらをリストアップせずにそこに到達する方法がわかりません。

SELECT KEY
FROM T1
WHERE VALUE >='A*'
  AND VALUE <='AS01*'
于 2013-02-01T15:07:54.307 に答える