MySQL 如何检查列值是字符串还是数字

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)

阅读更多:MySQL 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程