MySQL:比较包含字母和数字的混合字段

时间:2014-04-02 17:07:59

标签: mysql

我在mysql数据库中有一个包含以下数据的字段:

    Q16
    Q32
    L16
    Q4
    L32
    L64
    Q64
    Q8
    L1
    L4
    Q1

等等。我试图做的就是拉出来,让我们说,所有以Q开头的价值都很容易:

field_name LIKE 'Q%'

但是我想要过滤让我们说出所有数字高于32的值。结果我只能得到Q64'但是,我因为我将它们作为字符串进行比较所以得到Q4,Q8等等,因此只比较3和相应的数字,并且数字通常被视为单个数字,而不是整数。 由于这非常有意义,我很难找到解决方法来解决如何执行此操作而不将所有数据从数据库中拉出来,剥离Q并将其全部解析为整数。

我确实玩过CAST运算符,但只有当值存储为字符串并且它只包含数字时它才有效。如果那里有另一个字符,则解析失败..

1 个答案:

答案 0 :(得分:1)

从字符串中提取数字并将其转换为*1cast

的数字
select * from your_table
where substring(field_name, 1, 1) = 'Q'
and substring(field_name, 2) * 1 > 32