我有一个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
答案 0 :(得分:4)
SELECT * FROM `table`
WHERE FIELD (`clar`, 'SI2','SI1','VS2','VS1','VVS2','VVS1','IF','FL')
BETWEEN 1 AND 8
如果您想要不同的范围,则只需更改BETWEEN
条件中的数值。例如,要获取分数在VS2
和IF
之间的行,请指定BETWEEN 3 and 7
。
答案 1 :(得分:1)
您可以明确命名您要查找的值
SELECT * FROM `table`
WHERE `clar` in ('SI2','SI1','VS2','VS1','VVS2','VVS1','IF','FL')