Mysql,使用 UNION ALL 处理 ‘无中生有‘ 的数据。

news2024/10/6 2:26:03

   

       在日常的开发工作中,有时我们需要在SQL层面添加一些数据库表中没有的数据,那么我们就可以使用 UNION ALL 关键字来解决。

 

一、简单的无中生有:在查询返回结果中添加数据

       以下方的SQL1为例,我们根据 id 查询 user 表中的数据,但想将 name = "燕双鹰"、age = 70 的数据也添加上,使用 UNION ALL 完美的解决了这个问题。

SQL1

-- SQL1, 在查询结果中添加表中不存在的数据.
SELECT
 u.`name`,
 u.age
 
FROM user u
WHERE
 u.id = 4
UNION ALL
SELECT
 '燕双鹰' AS name,
 70 AS age
FROM DUAL
;

图一 

二、复制的无中生有:根据逻辑判断,追加不同的值.

    需求:这里有一个 name 模板,name值为:张三、李四、赵六, 当 user 表中含这些数据时,返回 name值 及对应的 age 值;如果表中不含 name 值,则也需要返回 name值 并将 age 值设为 0 。

     这个需求依旧可以使用 UNION ALL 来解决。这个需求看起来很无厘头,但现实的工作中总有各种奇葩的需求,身为程序员的我们也是挺无奈的!!!

    SQL2

SELECT
 CASE WHEN u.`name` = '张三' THEN u.`name` ELSE '张三' 
 END AS name,
 CASE WHEN u.`name` = '张三' THEN u.age ELSE 0 
 END AS age
 
FROM user u
WHERE
 u.id = 5
UNION ALL 
SELECT
 CASE WHEN u.`name` = '李四' THEN u.`name` ELSE '李四' 
 END AS name,
 CASE WHEN u.`name` = '李四' THEN u.age ELSE 0 
 END AS age
 
FROM user u
WHERE
 u.id = 4
UNION ALL
SELECT
 CASE WHEN u.`name` = '赵六' THEN u.`name` ELSE '赵六' 
 END AS name,
 CASE WHEN u.`name` = '赵六' THEN u.age ELSE 0 
 END AS age
 
FROM user u
WHERE
 u.id = 6
;

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/719514.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

118.浏览器支持和修复Safari浏览器的Flexbox漏洞

在我们之前的文章中,我们介绍了测试的步骤 虽然现在大部分新版本的浏览器都能支持99%的CSS属性,但是不排除的是仍然有一些用户使用老的IE浏览器或者版本较低的浏览器去浏览我们的网页,这样我们的网站可能无法按照我们的预期工作&#xff1b…

k8s从节点加入主节点[preflight] Running pre-flight checks卡住(已解决)

文章目录 一、写在前面二、问题排查1、执行join时加上-v2参数查看日志2、处理证书问题3、重启4、其他方法15、其他方法2 三、总结参考资料 一、写在前面 部署k8s时,主节点部署成功了,从节点1执行kubeadm join也成功了,从节点2执行kubeadm jo…

传输控制协议 TCP

文章目录 一、TCP报文格式1.报头格式2.TCP最大段长度 MSS 二、TCP连接建立与释放1.连接建立:三次握手2.报文传输3.连接释放:四次挥手4.保持定时器与时间等待定时器 三、TCP差错重传1.字节流状态分类与滑动窗口(发送)① 滑动窗口两…

基于 RK3399+fpga 的 VME 总线控制器设计(一)总体设计

2.1 需求分析及技术指标 2.1.1 需求分析 VME 总线控制器需要实现数据传输、中断处理、测量显示等功能。同时还需 要具有操作系统、底层驱动程序以及功能接口等,以方便用户进行上层应用软件开 发及使用。 本课题需要实现 VME 控制器的国产化开发&#xff0…

mysql误操作数据如何恢复

在此之前还是强烈建议大家进行定时备份,不然数据量多的话真的会有点emo的,好啦进入正题 操作背景:服务器windows server2012 数据库MySQL8.0 本人情况很奇葩,之前是备份了目标表的转储sql,但是我不知道是什么时候备…

RabbitMQ的基本概念和七种队列模式

I. RabbitMQ的基本概念 1. 生产者/消费者 生产者(Producer) 消息的创建者。 负责创建和推送数据到消息服务器。 消费者(Consumer) 消息的接收方。 负责接收消息和处理数据。 2. 消息队列(Queue) 消息队列是RabbitMQ的内部对象,用于存储生产者的消息直到发送给消…

【手撕算法|动态规划系列No.2】leetcode面试题 08.01. 三步问题

个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…

linux入门练级篇 第二讲 基本指令2

🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏1: 🍔🍟🌯C语言初阶 🐻推荐专栏2: 🍔🍟🌯C语言进阶 🔑个人信条: 🌵知行合一 &#x1f…

MySQL Optimization Learning(一)

目录 一、MySQL性能监控 1、show profile 2、performance schema 2.1、MYSQL performance schema详解 3、show processlist 一、MySQL性能监控 MySQL官网 拖到首页最下方找到 MySQL Reference Manual ->cmd命令行 C:\Users\Administrator>mysql -uroot -proot …

vue vant Calendar日历定制

calendar文档 <template> ...<Calendar :min-date"start" :max-date"end":title"null" :show-mark"false" :show-subtitle"false" :show-confirm"false" :show-title"true":poppable"fa…

Mongodb 对于Sort排序能够支持的最大内存限制查看和修改

报错&#xff1a; Executor error during find command: OperationFailed: Sort operation used more than the maximum 33554432 bytes of RAM. Add an index, or specify a smaller limit. MongoDB Server对于Sort排序能够支持的最大内存限制查看&#xff1a; [rootdata…

MySQL8.0 创建用户、配置用户权限、添加外网访问

MySQL8.0 创建用户、配置用户权限、添加外网访问 添加用户、外网访问 在MySQL 8.0中&#xff0c;root用户的外网访问权限默认是被禁止的。要修改root用户的外网访问权限&#xff0c;您需要进行以下步骤&#xff1a; 连接到MySQL服务器。您可以使用MySQL命令行客户端或其他数据…

1.mac M1 Java 开发环境的安装与配置

1.首先我们打开谷歌浏览器复制下面的网址安装jdk&#xff1a; Java Download | Java 7, Java 8, Java 11, Java 13, Java 15, Java 17, Java 19 - Linux, Windows and macOShttps://www.azul.com/downloads/?packagejdk#zulu 2.我们翻到最下面去选择我们需要的版本&#xff…

第三代互联网(Web3.0)

第三代互联网&#xff0c;也被称为Web3.0&#xff0c;是互联网发展的新阶段。Web3.0是指一种基于人工智能、区块链、物联网等技术的新一代互联网。相对于Web2.0&#xff0c;Web3.0的特点是更加分布式、去中心化、安全、隐私保护、智能化和可信任。 Web3.0的主要特点包括&#…

vue3插槽

匿名插槽 父组件 <template><h1>插槽</h1><A> 我是匿名插槽 </A> </template><script setup>import { ref } from vue;import A from ./A.vue; </script><style></style>子组件 <template><div>&l…

FastDDS 源码剖析:DDS部分 - typesDomainParticipant分析

目录 types分析 DomainParticipant分析 DomainParticipant的主要作用 DomainParticipant实现的一些关键原理&#xff1a; 源码剖析 types分析 位于src/cpp/dds中的types.cpp文件和位于include/dds/core中的types.hpp文件是FastDDS库的核心实现的一部分。 hpp文件是声明null…

【链表OJ】链表分割

⭐️ 往期相关文章 &#x1f4ab;链接1&#xff1a;链表中倒数第k个结点(快慢指针问题) &#x1f4ab;链接2&#xff1a;leetcode 876.链表的中间结点(快慢指针问题) &#x1f4ab;链接3&#xff1a;leetcode 206.反转链表 &#x1f4ab;链接4&#xff1a;leetcode 203.移除链…

[Golang实战] sql建表,不用外键,多个表之间如何建立起联系?

问题描述 下面是我的建表语句&#xff0c;在其中我并没有使用到外键&#xff0c;去关联三个表&#xff0c;但是我发现三个表中具有隐式的关联关系 create database library; use library; DROP TABLE IF EXISTS user;CREATE TABLE user(id bigint(20) NOT NULL AUTO_INCREMEN…

Java基础-多线程JUC-线程池和自定义线程池

1. 线程池 主要核心原理 不推荐Executors创建没有上线的线程池&#xff0c;建议使用自定义的线程池&#xff1b; Java工具类创建线程池&#xff1b; public class demo16 {public static void main(String[] args) {/*** public static ExecutorService newCachedThreadPoo1() …

一款打击感超强的动作游戏《流星蝴蝶剑》

文章目录 玩法介绍1.介绍2.按键操作3.流星蝴蝶剑各种武器招式秘籍 游戏优点游戏缺点游戏停服的原因游戏后续发展常见的的游戏道具1.四种水晶2.四种包子3.多种属性加成道具 《流星蝴蝶剑》的游戏打击感分析1.什么是游戏打击感2.影响游戏打击感的经典要素3.几个体现打击感的镜头动…