MariaDB 检查一个字符串字段是否包含一个数字
本文讨论在 MariaDB 中如何检查一个字符串字段中是否包含数字。
发布于
有时候,您可能需要检查一个字符串字段中是否包含字符或者数字。 MariaDB REGEXP
操作符可以帮到您。
REGEXP
是一个用于验证字符串是否和指定的正则表达式匹配的操作符。
REGEXP
与 LIKE
不同, LIKE
执行的是全部匹配,而 REGEXP
执行部分匹配。
示例
假设我们有一个 notes
表,表中的数据如下:
SELECT * FROM notes;
输出:
+----+------------------------+
| id | note |
+----+------------------------+
| 1 | Hello World |
| 2 | This is for you, 2022. |
| 3 | AAAA |
| 4 | B-2-9-6 |
| 5 | 1234567890 |
+----+------------------------+
匹配含有数字的值
以下语句查找那些 note
列中包含数字的行:
SELECT *
FROM notes
WHERE note REGEXP '[0-9]+';
输出:
+----+------------------------+
| id | note |
+----+------------------------+
| 2 | This is for you, 2022. |
| 4 | B-2-9-6 |
| 5 | 1234567890 |
+----+------------------------+
如果要查找那些只包含数字的行,请使用以下语句:
SELECT *
FROM notes
WHERE note REGEXP '^[0-9]+$';
输出:
+----+------------+
| id | note |
+----+------------+
| 5 | 1234567890 |
+----+------------+
匹配还有字母的值
以下语句查找那些 note
列中包含字母的行:
SELECT *
FROM notes
WHERE note REGEXP '[a-zA-Z]+';
输出:
+----+------------------------+
| id | note |
+----+------------------------+
| 1 | Hello World |
| 2 | This is for you, 2022. |
| 3 | AAAA |
| 4 | B-2-9-6 |
+----+------------------------+
如果要查找那些只包含字母的行,请使用以下语句:
SELECT *
FROM notes
WHERE note REGEXP '^[a-zA-Z]+$';
输出:
+----+------+
| id | note |
+----+------+
| 3 | AAAA |
+----+------+
结论
在本例中,我们使用 REGEXP
函数来查找与模式匹配的所有行。
REGEXP
与 LIKE
不同, LIKE
执行的是全部匹配,而 REGEXP
执行部分匹配。