模糊查询、union合并等

like子句

like可以进行模糊查询

可以使用% 表示任何字符

例如

WHERE title LIKE '%轮工%';Code language: JavaScript (javascript)
select * from post where title like '%广州%';Code language: JavaScript (javascript)

或者可以取反

select * from post where title not like '%广州%';Code language: JavaScript (javascript)

没有出现广州的

结果集合并Union操作

连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。

比如

SELECT expression1, expression2, ... expression_n FROM tables [WHERE conditions] 
UNION [ALL | DISTINCT] 
SELECT expression1, expression2, ... expression_n FROM tables [WHERE conditions];Code language: CSS (css)
insert into post1
(title, content, addtime) 
values
("求助 怎么去上海", "我要从南海去sdf", now()) ,
("求助 怎么去东京", "我要从南海去第三方", now()) ,
("求助 怎么去天津", "我要从南海去广州", now());Code language: JavaScript (javascript)

如果两个字段对应不上 则会报错

mysql> select * from post
    -> union
    -> select *,2 from post1;
ERROR 1222 (21000): The used SELECT statements have a different number of columnsCode language: JavaScript (javascript)

别名的使用

mysql> select id,title from post;
+----+------------------+
| id | title            |
+----+------------------+
|  1 | 有没有人是背景的               |
|  2 | 求助怎么去背景               |
|  5 | 求助 怎么去广州              |
|  4 | 求助 怎么去广州              |
|  6 | 求助 怎么去广州              |
|  7 | 求助 怎么去广州              |
+----+------------------+
6 rows in set (0.00 sec)

mysql> select id,title 标题 from post;
+----+------------------+
| id | 标题                 |
+----+------------------+
|  1 | 有没有人是背景的               |
|  2 | 求助怎么去背景               |
|  5 | 求助 怎么去广州              |
|  4 | 求助 怎么去广州              |
|  6 | 求助 怎么去广州              |
|  7 | 求助 怎么去广州              |
+----+------------------+
6 rows in set (0.00 sec)Code language: JavaScript (javascript)

补充上一节union的

  • expression1, expression2, … expression_n: 要检索的列。
  • tables: 要检索的数据表。
  • WHERE conditions: 可选, 检索条件。
  • DISTINCT: 可选,删除结果集中重复的数据。默认情况下 UNION 操作符已经删除了重复数据,所以 DISTINCT 修饰符对结果没啥影响。
  • ALL: 可选,返回所有结果集,包含重复数据。

distinct 去掉重复

mysql> select title from post;
+------------------+
| title            |
+------------------+
| 有没有人是背景的               |
| 求助怎么去背景               |
| 求助 怎么去广州              |
| 求助 怎么去广州              |
| 求助 怎么去广州              |
| 求助 怎么去广州              |
+------------------+
6 rows in set (0.00 sec)

mysql> select distinct title from post;
+------------------+
| title            |
+------------------+
| 有没有人是背景的               |
| 求助怎么去背景               |
| 求助 怎么去广州              |
+------------------+
3 rows in set (0.00 sec)Code language: JavaScript (javascript)

union 默认会去掉重复的

mysql> select title from post
    -> union
    -> select title from post1;
+------------------+
| title            |
+------------------+
| 有没有人是背景的               |
| 求助怎么去背景               |
| 求助 怎么去广州              |
| 求助 怎么去上海             |
| 求助 怎么去东京              |
| 求助 怎么去天津              |
+------------------+
6 rows in set (0.00 sec)Code language: JavaScript (javascript)

注意 是一行所有列都一样的时候 才是重复

如果本身就想要留住重复的 可以用union all

mysql> select title from post
    -> union all
    -> select title from post1;
+------------------+
| title            |
+------------------+
| 有没有人是背景的               |
| 求助怎么去背景               |
| 求助 怎么去广州              |
| 求助 怎么去广州              |
| 求助 怎么去广州              |
| 求助 怎么去广州              |
| 求助 怎么去上海             |
| 求助 怎么去东京              |
| 求助 怎么去天津              |
+------------------+
9 rows in set (0.00 sec)Code language: JavaScript (javascript)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注