NULL 值的处理
- IS NULL: 当列的值是 NULL,此运算符返回 true。
- IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。
在创建表字段的时候 我们可以设置某一列是否允许为null
insert into post(title) values('111111'),('222222');Code language: JavaScript (javascript)
mysql> select * from post where content is null;
+----+--------+---------+---------+
| id | title | content | addtime |
+----+--------+---------+---------+
| 8 | 111111 | NULL | NULL |
| 9 | 222222 | NULL | NULL |
+----+--------+---------+---------+
2 rows in set (0.00 sec)
mysql> select * from post where content is not null;Code language: PHP (php)
MySQL 使用正则表达式
MySQL可以通过 LIKE …% 来进行模糊匹配
MySQL 同样也支持其他正则表达式的匹配, MySQL中使用 REGEXP 操作符来进行正则表达式匹配
了解以上的正则需求后,我们就可以根据自己的需求来编写带有正则表达式的SQL语句。以下我们将列出几个小实例(表名:person_tbl )来加深我们的理解:
查找name字段中以’st’为开头的所有数据:
SELECT name FROM person_tbl WHERE name REGEXP '^st';Code language: JavaScript (javascript)
查找name字段中以’ok’为结尾的所有数据:
SELECT name FROM person_tbl WHERE name REGEXP 'ok$';Code language: JavaScript (javascript)
查找name字段中包含’mar’字符串的所有数据:
SELECT name FROM person_tbl WHERE name REGEXP 'mar';Code language: JavaScript (javascript)
查找name字段中以元音字符开头或以’ok’字符串结尾的所有数据:
SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';Code language: JavaScript (javascript)
mysql> select * from post where title regexp '^有';
+----+------------------+---------------------+---------------------+
| id | title | content | addtime |
+----+------------------+---------------------+---------------------+
| 1 | 有没有人是背景的 | 我在背景 谁去看电影 | 2018-04-25 14:14:37 |
+----+------------------+---------------------+---------------------+
1 row in set (0.00 sec)
select * from post where title regexp '广州$';Code language: JavaScript (javascript)