从 MySql 获取唯一值

Get unique values from MySql

在我的 table 中有如下值:14、15、14、R14、R15、R15C、R14C,....

在当前不同模式下,我得到:14、R14、R14C、R15、R15C,...

但我想要的只是像这样的唯一数字:14, 15,...

要摆脱字母并只获得唯一数字?

我当前的代码:

SELECT DISTINCT diameter FROM tires WHERE category = '$cat' ORDER BY diameter ASC
SELECT DISTINCT 0 + REGEXP_REPLACE(diameter, '^[[:alpha:]]*', '') diameter
FROM tires;

正则表达式从开头删除所有字母字符,然后通过添加零将该值隐式转换为数字(事实上 - 删除尾随字母)。

fiddle


I forget to tell that I have decimal values like R22,5 - RoX

在 REGEXP_REPLACE() 之前或之后,但在添加零之前,用点替换逗号。例如,

SELECT DISTINCT 0 + REGEXP_REPLACE(REPLACE(diameter, ',', '.'), '^[[:alpha:]]*', '') diameter
FROM tires;

fiddle

PS。我建议将生成的列添加到 table 结构中。参见 example