如何在 MySQL 中检查列值包含字符串或数字?
如果您只需要字符串值,请使用以下语法 −
select *from yourTableName where yourColumnName NOT regexp '^[0-9]+$';
如果您只需要数字,请使用以下语法 −
select *from yourTableName where yourColumnName regexp '^[0-9]+$';
让我们首先创建一个表 −
mysql> create table DemoTable( Id varchar(100) ); Query OK, 0 rows affected (0.49 sec)
使用 insert 命令在表中插入一些记录 −
mysql> insert into DemoTable values('1000'); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable values('John'); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable values('Carol_Smith'); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable values('2000'); Query OK, 1 row affected (0.10 sec)
使用 select 语句显示表中的所有记录 −
mysql> select *from DemoTable;
这将生成以下输出 −
+-------------+ | Id | +-------------+ | 1000 | | John | | Carol_Smith | | 2000 | +-------------+ 4 rows in set (0.00 sec)
CASE 1 − 以下是仅获取字符串值的查询 −
mysql> select *from DemoTable where Id NOT regexp '^[0-9]+$';
这将生成以下仅显示字符串列值的输出 −
+-------------+ | Id | +-------------+ | John | | Carol_Smith | +-------------+ 2 rows in set (0.00 sec)
CASE 2 − 以下是仅获取数字的查询 −
mysql> select *from DemoTable where Id regexp '^[0-9]+$';
这将生成以下仅显示数字列值的输出 −
+------+ | Id | +------+ | 1000 | | 2000 | +------+ 2 rows in set (0.00 sec)
广告