在 MySQL 中,您可以使用BETWEEN
比较运算符:
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
您可以制定两个标准并告诉两者都需要匹配(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;
这将允许您创建和索引,并在必要时真正加快未来的搜索速度。但在此之前,您已经对数据进行了更多规范化。