我在mysql数据库中有一个包含以下数据的字段:
Q16
Q32
L16
Q4
L32
L64
Q64
Q8
L1
L4
Q1
等等。我试图做的就是拉出来,让我们说,所有以Q开头的价值都很容易:
field_name LIKE 'Q%'
但是我想要过滤让我们说出所有数字高于32的值。结果我只能得到Q64'但是,我因为我将它们作为字符串进行比较所以得到Q4,Q8等等,因此只比较3和相应的数字,并且数字通常被视为单个数字,而不是整数。 由于这非常有意义,我很难找到解决方法来解决如何执行此操作而不将所有数据从数据库中拉出来,剥离Q并将其全部解析为整数。
我确实玩过CAST运算符,但只有当值存储为字符串并且它只包含数字时它才有效。如果那里有另一个字符,则解析失败..
答案 0 :(得分:1)
从字符串中提取数字并将其转换为*1
或cast
select * from your_table
where substring(field_name, 1, 1) = 'Q'
and substring(field_name, 2) * 1 > 32