BETWEEN
MySQL では、比較演算子を使用できます。
SELECT * FROM test.inches WHERE text BETWEEN 15 AND 16;
その範囲からすべてのエントリを取得するには。BETWEEN
また、文字列を数値に変換します。
3 15.1 inches 15.1
4 15.6 inches 15.6
5 16 inches 16
または、BETWEEN
2 つの基準を定式化して、両方が一致する必要があることを伝えることもできます ( AND
)。
SELECT * FROM test.inches WHERE text >= 15 AND text < 16;
`-- #1 --´ + `-- #2 -´
これにより、次のようになります。
3 15.1 inches 15.1
4 15.6 inches 15.6
これが役立つことを願っています。
キャストについて (ここでは文字列を数値に変換します): MySQL (少なくとも私がここで使用しているバージョンですが、これは一般的です) では、文字列を数値に変換し、0 を追加することで数値を比較できます。デモンストレーション:
SELECT "15.1 inches" + 0 AS inches;
番号を含む単一の行を返します;:
15.1
データベースにクエリを実行するときにも同じことができます。
SELECT * FROM inches WHERE text + 0 BETWEEN 14 AND 15;
最初に数値を数値としてデータベースに格納する必要があることに注意してください。したがって、新しい列を導入して既存の日付を変換できます。
ALTER TABLE `test`.`inches` ADD COLUMN `number` FLOAT NULL AFTER `text` ;
UPDATE inches SET number = text + 0;
その後、常に変換を行うことなく、そこから直接クエリを実行できます。
SELECT * FROM inches WHERE number BETWEEN 14 AND 15;
これにより、作成してインデックスを作成し、必要に応じて将来の検索を実際に高速化できます. しかし、それまでは、データをもう少し正規化しています。