MySQL - 仅从varchar列中选择非数字值

时间:2016-10-21 10:29:19

标签: mysql

create table mixedvalues (value varchar(50));

insert into mixedvalues values ('100');
insert into mixedvalues values ('ABC100');
insert into mixedvalues values ('200');
insert into mixedvalues values ('EFEA200');
insert into mixedvalues values ('300');
insert into mixedvalues values ('AAFASF300');
insert into mixedvalues values ('400');
insert into mixedvalues values ('AERG400');
insert into mixedvalues values ('500');
insert into mixedvalues values ('AGE500');

我想只选择非数字(字母数字)值,即ABC100,EFEA200,AAFASF300,AERG400,AGE500。

我有选择数值的代码,即100,200 ....

SELECT * 
FROM mixedvalues 
WHERE value REGEXP '^[0-9]+$';

请帮助我,我是初学者。

2 个答案:

答案 0 :(得分:14)

正则表达式[a-zA-Z]只应在值包含至少一个字母时才触发。

SELECT * 
FROM mixedvalues 
WHERE value REGEXP '[a-zA-Z]';   -- or REGEXP '[[:alpha:]]'

答案 1 :(得分:1)

REGEXP' ^ [^ 0-9] + $'选择所有非数字字符

SELECT state FROM `enquiry` group by state having state REGEXP '^[^0-9]+$'