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

Mysql 非数字或字母db值的值范围查询,mysql,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之间的值范围 我到底该怎么做 显然,上面的查询给了我一个不正确的数据范围,因为它既不是字

我有一个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 `clar` in ('SI2','SI1','VS2','VS1','VVS2','VVS1','IF','FL')

可以显式命名要查找的值

SELECT * FROM `table` 
WHERE `clar` in ('SI2','SI1','VS2','VS1','VVS2','VVS1','IF','FL')
如果需要不同的范围,只需更改中间条件中的数值。例如,要获取分数介于VS2和IF之间的行,请指定介于3和7之间的行



如果需要不同的范围,只需更改中间条件中的数值。例如,要获得分数在VS2和IF之间的行,请指定3和7之间。

您想要所有值,或者范围可以更改?范围可以更改,因此可以是VS2到IF,我想要中间的所有值你能显示表中的一些示例行吗?你能修改表以添加一个包含1到8个值的新列吗?我不能修改表,我考虑过这样做:1-8你想要所有值,或者范围可以改变?范围可以改变,所以可能是Vs2到IF,我想要中间的所有值你能显示表中的一些示例行吗?你能修改表以添加一个包含1到8个值的新列吗?我不能修改表,我考虑过这样做:1-8我想他只想指定范围限制。我可以根据他们选择的范围构建查询字符串,这样可能会起作用。我想他只想指定范围限制。我可以根据他们选择的范围构建查询字符串,这样可能会起作用。我无法更改数据库值或添加带有数字的字段values@grant 这并没有改变数据库,它只是一个查询,我明白你的意思。@sranchez谢谢,你的查询很好,但我会接受下面的答案,因为我更容易用它动态构建查询字符串。您的答案需要我构建一些PHP代码来解释$\u POST值并反馈数值。下面的答案不是。我无法更改数据库值或添加带有数字的字段values@grant这并没有改变数据库,它只是一个查询,我明白你的意思。@sranchez谢谢,你的查询很好,但我会接受下面的答案,因为我更容易用它动态构建查询字符串。您的答案需要我构建一些PHP代码来解释$\u POST值并反馈数值。下面的答案是否定的。