MySQL比较VARCHAR列

Nor*_*rse 1 mysql varchar casting

我有一个名为的专栏 D1_VAL

此列中的行包含如下所示的数据:

C:10
R:200
E:3
N:77
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用逻辑运算符搜索这些值.我试过这个:

SELECT * FROM d1 WHERE CAST(`D1_VAL` AS UNSIGNED) > 5
Run Code Online (Sandbox Code Playgroud)

它不会返回任何行.我也尝试过:

SELECT * FROM d1 WHERE (0 + `D1_VAL`) > 5
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

Shi*_*dim 5

这个查询会做,

SELECT * FROM d1 WHERE CAST(SUBSTRING(`D1_VAL`, 3) AS UNSIGNED) > 5
Run Code Online (Sandbox Code Playgroud)

但最好将值标准化C:10为两个单独的列.

create table d1(
    letter char(1),
    number int,
    // ... other columns
)
Run Code Online (Sandbox Code Playgroud)