版权声明:本文为博主原创文章,未经博主允许不得转载。 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 正则表达式
// 匹配以“学习”开头的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)