MySQL 09 NULL值处理、正则表达式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lihaogn/article/details/82216097

1 NULL值处理

MySQL提供了三大运算符处理NULL值:

  • IS NULL: 当列的值是 NULL,此运算符返回 true。
  • IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。
  • <=>: 比较操作符(不同于=运算符),当比较的的两个值为 NULL 时返回 true。

注意:

  • 关于 NULL 的条件比较运算是比较特殊的。不能使用 = NULL 或 != NULL 在列中查找 NULL 值 。
  • 在 MySQL 中,NULL 值与任何其它值的比较(即使是 NULL)永远返回 false,即 NULL = NULL 返回false 。
  • MySQL 中处理 NULL 使用 IS NULL 和 IS NOT NULL 运算符。
mysql> SELECT * FROM tb1;
+----+--------------+----------+------------+
| id | title        | author   | date       |
+----+--------------+----------+------------+
|  1 | 学习mysql    | lihaogn  | 2018-07-13 |
|  2 | 学习java     | zhangsan | 2018-06-30 |
|  3 | 学习scala    | wanger   | NULL       |
|  4 | 学习python   | caliu    | 2018-08-29 |
|  5 | 学习spark    | wusan    | 2018-08-29 |
|  6 | 学习hadoop   | gaowu    | 2018-08-29 |
+----+--------------+----------+------------+
6 rows in set (0.00 sec)

mysql> SELECT * FROM tb1 WHERE date IS NULL;
+----+-------------+--------+------+
| id | title       | author | date |
+----+-------------+--------+------+
|  3 | 学习scala   | wanger | NULL |
+----+-------------+--------+------+
1 row in set (0.00 sec)

mysql> SELECT * FROM tb1 WHERE date IS NOT NULL;
+----+--------------+----------+------------+
| id | title        | author   | date       |
+----+--------------+----------+------------+
|  1 | 学习mysql    | lihaogn  | 2018-07-13 |
|  2 | 学习java     | zhangsan | 2018-06-30 |
|  4 | 学习python   | caliu    | 2018-08-29 |
|  5 | 学习spark    | wusan    | 2018-08-29 |
|  6 | 学习hadoop   | gaowu    | 2018-08-29 |
+----+--------------+----------+------------+
5 rows in set (0.00 sec)

2 正则表达式

REGEXP操作符

// 匹配以“学习”开头的title
mysql> SELECT title FROM tb1 WHERE title REGEXP '^学习';
+--------------+
| title        |
+--------------+
| 学习mysql    |
| 学习java     |
| 学习scala    |
| 学习python   |
| 学习spark    |
| 学习hadoop   |
+--------------+
6 rows in set (0.00 sec)

// 匹配字符串中含有“hadoop”的title
mysql> SELECT title FROM tb1 WHERE title REGEXP 'hadoop';
+--------------+
| title        |
+--------------+
| 学习hadoop   |
+--------------+
1 row in set (0.00 sec)

// 匹配以“a”结尾的title
mysql> SELECT title FROM tb1 WHERE title REGEXP 'a$';
+-------------+
| title       |
+-------------+
| 学习java    |
| 学习scala   |
+-------------+
2 rows in set (0.00 sec)

// 匹配以“j”或“s”开头或以“l”结尾的title
mysql> SELECT title FROM tb1 WHERE title REGEXP '^[js]|l$';
+-------------+
| title       |
+-------------+
| 学习mysql   |
+-------------+
1 row in set (0.00 sec)

// 匹配含有“j”或“s”或以“l”结尾的title
mysql> SELECT title FROM tb1 WHERE title REGEXP '[js]|l$';
+-------------+
| title       |
+-------------+
| 学习mysql   |
| 学习java    |
| 学习scala   |
| 学习spark   |
+-------------+
4 rows in set (0.00 sec)

猜你喜欢

转载自blog.csdn.net/lihaogn/article/details/82216097