当前位置: 首页 > news >正文

网站建设电脑ps如何做网页设计

网站建设电脑,ps如何做网页设计,有什么网站可以接活做设计,网站设计网站开发优化文章目录一、数据准备一、UNION 和 UNION ALL二、UNION 的执行顺序#xff08;UNION 和其他语句一同出现#xff09;三、MySQL 使用 UNION#xff08;ALL#xff09; ORDER 导致排序失效四、UNION 报错语法一、数据准备 -- 创建表 CREATE TABLE test_user (ID int(11) NO… 文章目录一、数据准备一、UNION 和 UNION ALL二、UNION 的执行顺序UNION 和其他语句一同出现三、MySQL 使用 UNIONALL ORDER 导致排序失效四、UNION 报错语法一、数据准备 -- 创建表 CREATE TABLE test_user (ID int(11) NOT NULL AUTO_INCREMENT,USER_ID int(11) DEFAULT NULL COMMENT 用户账号,USER_NAME varchar(255) DEFAULT NULL COMMENT 用户名,AGE int(5) DEFAULT NULL COMMENT 年龄,COMMENT varchar(255) DEFAULT NULL COMMENT 简介,PRIMARY KEY (ID) ) ENGINEInnoDB AUTO_INCREMENT7 DEFAULT CHARSETutf8;-- 数据插入语句 INSERT INTO test_user (ID, USER_ID, USER_NAME, AGE, COMMENT) VALUES (1, 111, 开心菜鸟, 18, 今天很开心); INSERT INTO test_user (ID, USER_ID, USER_NAME, AGE, COMMENT) VALUES (2, 222, 悲伤菜鸟, 21, 今天很悲伤); INSERT INTO test_user (ID, USER_ID, USER_NAME, AGE, COMMENT) VALUES (3, 333, 认真菜鸟, 30, 今天很认真); INSERT INTO test_user (ID, USER_ID, USER_NAME, AGE, COMMENT) VALUES (4, 444, 高兴菜鸟, 18, 今天很高兴); INSERT INTO test_user (ID, USER_ID, USER_NAME, AGE, COMMENT) VALUES (5, 555, 严肃菜鸟, 21, 今天很严肃);SELECT * FROM test_user u;一、UNION 和 UNION ALL UNION 连接数据集关键字可以将两个查询结果集拼接为一个会过滤掉相同的记录 UNION ALL 连接数据集关键字可以将两个查询结果集拼接为一个不会过滤掉相同的记录 -- 使用UNION SELECT * FROM test_user u UNION SELECT * FROM test_user u;使用 UNION 可以看到查询结果只有 5 条数据。 -- 使用UNION ALL SELECT * FROM test_user u UNION ALL SELECT * FROM test_user u;使用 UNION ALL可以看到查询结果有 10 条数据。 二、UNION 的执行顺序UNION 和其他语句一同出现 from—on—join—where—group by—having(聚合函数)—select—distinct—UNION—order by—limit UNION 的执行顺序在 ORDER BY 之前 请记住这个执行顺序便可以知道 UNION 和其他语句一同出现的结果。 UNION 和 WHERE 语句 -- 1、第二个子句中的 where 语句不能同时作用于两个select语句 -- 5 1共计 6 条 SELECT *, table1 FROM test_user u UNION ALL SELECT *, table2 FROM test_user u WHERE AGE 30;UNION 在 where 之后所以第二个表的WHERE先筛选后进行数据集拼接 如果想要把 where 作用所有结果集可以通过再嵌套一个 select 。 -- 1、第二个子句中的 where 语句不能同时作用于两个select语句 -- 1 1共计 2 条 -- 写法 1 SELECT * FROM (SELECT *, table1 FROM test_user u UNION ALLSELECT *, table2 FROM test_user u ) a WHERE AGE 30; -- 或者使用写法 2 SELECT *, table1 FROM test_user u WHERE AGE 30 UNION ALL SELECT *, table2 FROM test_user u WHERE AGE 30 ;UNION 和 GROUP 语句 -- 2、第二个子句中的 group by 语句不能同时作用于两个select语句 -- 5 3共计 8 条 SELECT *, table1 FROM test_user u UNION ALL SELECT *, table2 FROM test_user u GROUP BY AGE;UNION 在 GROUP BY 之后所以 table2 的 GROUP BY 先分组后进行数据集拼接 2. UNION 和 HAVING 语句 -- 3、第二个子句中的 HAVING 语句不能同时作用于两个 select 语句 -- 5 1共计 6 条 SELECT *, table1 FROM test_user u UNION ALL SELECT *, table2 FROM test_user u HAVING AGE 30 ;UNION 在 HAVING 之后所以 table2 的 HAVING 先过滤后进行数据集拼接 3. UNION 和 ORDER BY 语句 -- 4、第二个子句中的 order by 语句可以同时作用于两个select语句 -- 查询结果整体按照 age 进行了排序 SELECT *, table1 FROM test_user u UNION ALL SELECT *, table2 FROM test_user u ORDER BY AGE;因为当 UNIONALL语句和 ORDER BY语句同时出现UNIONALL语句先执行。 4. UNION 和 LIMIT 语句 -- 只有1条数据因为LIMIT在UNION之后执行 SELECT *, table1 FROM test_user u UNION ALL SELECT *, table2 FROM test_user u limit 0,1;只有1条数据因为 LIMIT 在 UNION 之后执行。 UNION 、 ORDER BY 和 LIMIT 语句 -- 5、第二个子句中的 order by ,LIMIT 语句同时作用于两个 select 语句 ********* -- 只有1条数据age30 UNION---ORDER BY---LIMIT SELECT *, table1 FROM test_user u UNION ALL SELECT *, table2 FROM test_user u order by age desc limit 0,1;先拼接数据集在按照 age 排序最后使用 LIMIT 。 三、MySQL 使用 UNIONALL ORDER 导致排序失效 通过以下两种方式解决 添加 LIMIT 字段额外增加排序字段 SQL 1 如下 SELECT * FROM test_user u ORDER BY AGE;2. SQL 2 如下 SELECT * FROM test_user u ORDER BY AGE DESC;3. 查询结果集 (SELECT *, table1 FROM test_user u ORDER BY AGE) UNION ALL (SELECT *, table2 FROM test_user u ORDER BY AGE DESC);可以看到此时 ORDER BY 语句失效了。 原因UNIONALL 会使 ORDER 失效 解决办法1 添加 LIMIT -- 都加上 LIMIT ( SELECT *, table1 FROM test_user u ORDER BY AGE limit 10) UNION ALL ( SELECT *, table2 FROM test_user u ORDER BY AGE DESC limit 10) 最好的解决方案就是先查询后排序避免上述情况发生。 解决办法2 添加额外的排序字段 select * from (( SELECT *, table1 AS name, row_number() over(ORDER BY AGE ) AS rn FROM test_user u ) UNION ALL ( SELECT *, table2 AS name, row_number() over(ORDER BY AGE DESC) AS rn FROM test_user u ) ) a order by name, rn;额外需要两个字段通过 row_number() over(order by column)进行表内排序再通过 name 字段进行表排序。 四、UNION 报错语法 1. ORDER BY 语法报错 -- 语法错误 SELECT *, table1 FROM test_user u ORDER BY AGE UNION ALL SELECT *, table2 FROM test_user u ORDER BY AGE DESC;第一个 SELECT 语句也使用了 ORDER BY 导致报错。 解决方案第一个 SELECT 语句加上括号。 -- 语法正确 (SELECT *, table1 FROM test_user u ORDER BY AGE) UNION ALL SELECT *, table2 FROM test_user u ORDER BY AGE DESC;加上括号后虽然不再报错但是第一个 SELECT 语句的排序失效。 那要是上下两个都加上括号呢 -- 语法正确 (SELECT *, table1 FROM test_user u ORDER BY AGE) UNION ALL (SELECT *, table2 FROM test_user u ORDER BY AGE DESC);语法不报错但是两个排序都失效了。 原因大家也清楚前面第三小节已经讲过了UNION 在 ORDER BY 语句之前。 2. LIMIT 语法报错 同样对于 LIMIT 语句也是一样的。 -- 语法错误 SELECT *, table1 FROM test_user u limit 0,1 UNION ALL SELECT *, table2 FROM test_user u limit 0,1;解决方案同样也是第一个 SELECT 语句加上括号。 -- 语法正确1 条记录 (SELECT *, table1 FROM test_user u limit 0,1) UNION ALL SELECT *, table2 FROM test_user u limit 0,1;此时语法正确但只返回一行记录。 如果想要返回两条记录就给第二个 SELECT 语句也加上括号。 -- 语法正确2 条记录 (SELECT *, table1 FROM test_user u limit 0,1) UNION ALL (SELECT *, table2 FROM test_user u limit 0,1);总结 UNION 后面执行的 ORDER BYLIMIT 语句注意使用时要加括号否则报错。
http://www.ho-use.cn/article/10820004.html

相关文章:

  • 徐州网站公司研发网站要多长时间
  • 展览馆网站建设方案书沃尔玛网上商城中国
  • 沈阳软件公司 网站制作深圳企业社保登录入口
  • 韶关建网站怎样建立个人网络平台
  • 军用棉被门网站建设网站建设需要哪些证
  • 手机交互设计网站wordpress 新编辑器
  • 企业网站网页网页代码编辑器有哪些软件
  • 安徽网站建设合肥网站建设郑州住房城乡建设官网
  • 网站建设过程发生的费用如何提升网站流量
  • 枫泾网站建设展馆设计的主题有哪些
  • 快速设计网站北京网页设计培训机构
  • 携程网网站是哪家公司做的wordpress远程本地化
  • 汽车网站建设预算梅州在建高铁最新消息
  • 市北区开发建设局 网站php wordpress joom
  • 网站优化北京seowordpress解析
  • django网站开发视频教程下载网站备案需要具备什么条件
  • 东莞专业微网站建设价格dede可以做视频网站
  • 海口自助建站软件最好的网站推广
  • php和html5做网站亦庄公司做网站
  • 阳江 网站开发设计的商城网站建设
  • 网站404页面做晚了WordPress搭建在线电影
  • dw网页制作教案郑州网站优化外包顾问
  • 保险网站哪个好网站优化排名首页
  • 上海网站推广珈维安卓手机怎么搭建网页
  • 网站名称管理生物公司网站建设方案
  • 网站鼠标悬停动态效果代码python基础教程下载
  • 网站如何带来流量重庆娱乐场所最新通知
  • 淘宝上找人做网站百度糯米网站怎么做
  • wordpress本地网站搭建整套课程网站出现风险如何处理方法
  • 网站搭建配置手机app在哪里找