mysql - 非数字或字母 db 值的值范围查询

标签 mysql

我有一个 MySql 数据库,其中有一个名为 clar 的字段,其数据值为:SI2、SI1、VS2、VS1、VVS2、VVS1、IF、FL

这是一个从最低:SI2 到最高:FL 的等级

我无法更改数据库表中的数据格式,即将值更改为数值。例如:SI2 = 1 FL = 8

我想用以下内容查询表:

SELECT * FROM `table` WHERE `clar` BETWEEN 'SI2' AND 'FL'

获取 SI2 和 FL 之间的值范围。

我到底该怎么做?

显然上面的查询给了我一个不正确的数据范围,因为它既不是字母也不是数字。

示例行:

field1  field2  field3  field4  clar    field6
-----------------------------------------------
500569  BR      0.120   E       VS2     0.00
500110  BR      0.120   G       SI2     0.00
500549  BR      0.120   F       SI1     0.00

最佳答案

SELECT * FROM `table`
 WHERE FIELD (`clar`, 'SI2','SI1','VS2','VS1','VVS2','VVS1','IF','FL')
       BETWEEN 1 AND 8

如果您想要不同的范围,您只需更改BETWEEN 条件中的数值。例如,要获取得分在 VS2IF 之间的行,您可以指定 BETWEEN 3 and 7

关于mysql - 非数字或字母 db 值的值范围查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20404316/

相关文章:

php - 如何从 md5 移动到 PBKDF2?

php - 对于在一个查询中表中具有相关行的每个客户端,删除除最后 10 行之外的所有行吗?

mysql - 需要帮助将 mssql 函数转换为 mysql

mysql - SQL 数字不准确

php - 返回给定周的所有记录

Mysql 在子查询中使用 IN

mysql - 仅对父类别进行递归查询 - 按期间

mysql - 这个update语句中的select选择了多少行

mysql - 如何对 UNION 的结果进行排序

Php 在错误处理时重定向到错误的 URL(登录)