-1

数値 (先行ゼロのために文字列として保存される) が特定の範囲に収まるかどうかを判断する必要があります。範囲は次のようになります。

12 - 14
3456 - 4567

1233435 は最初の範囲にあると見なされます (一致は左からです)。番号は最大 20 桁で、すべての範囲が含まれるファイルがあります。範囲をインポートして、下限に末尾のゼロを追加し、上限に末尾の 9 を追加して、長さ 20 にしました。これは、可変長の数値を処理できるようにするためです。次のクエリ:

SELECT * FROM ranges WHERE 'my padded number' BETWEEN bound_lower AND bound_upper

数千の範囲があるので、テーブルにインデックスを付けたいのですが、どうすればこれを達成できるかわかりません。

ありがとう、メンデル

4

1 に答える 1

0

それはあなたが取った有効なアプローチのようです。インデックスを追加するには、次のことを行うだけです。

 CREATE INDEX between_index on ranges (bound_lower, bound_upper);

EXPLAIN を使用して、動作していることを確認できます。

于 2012-09-24T10:55:07.477 に答える