COALESCE
发表于|更新于
|浏览量:
沉默是最好的蔑视——康格里夫
分享一个关键字COALESCE获取第一个非空数据,表结构如下

执行sql:
1 | SELECT COALESCE(username,password) FROM `user_detail` |

相关推荐
2023-06-28
解决不能在mysql唯一索引使用函数问题
我们在伤害别人之前,要想到别人也会同样伤害我们。——达·芬奇 遇到不能在mysql唯一索引使用函数问题 可以使用虚拟列,例如下面的例子 1234# 添加虚拟列,为`date`字段格式化为月计算出来得到`month`字段ALTER TABLE `my_table` ADD COLUMN `month` VARCHAR(7) AS (DATE_FORMAT(`date`, '%Y-%m')) VIRTUAL;# 添加唯一索引到`month`和其他字段,组成联合唯一索引ALTER TABLE `my_table` ADD UNIQUE INDEX uk_date (`month`, `gmt_deleted`);
2023-07-05
迁移数据到备份表
对孩子的责任感是一切美德的基础。——西塞罗 昨晚写了个sql执行了一会儿去睡觉了,第二天发现还在执行 然后停止了下来,换另一种方式,将不需要删除的数据迁移到备份表,然后删除原表,再重命名回去 1234567CREATE TABLE mx_product_detail_bak LIKE mx_product_detail;INSERT INTO mx_product_detail_bakSELECT *FROM mx_product_detailWHERE type = 0;DROP TABLE mx_product_detail;RENAME TABLE mx_product_detail_bak TO mx_product_detail;
2024-04-22
Mysql的NULLIF
秉性难移。——冯梦龙 NULLIF函数是MySQL中的一个条件函数,用来返回两个表达式的比较结果。具体来说,如果两个表达式相等,NULLIF函数返回NULL;如果不相等,它就返回第一个表达式的值。其基本语法如下: 1NULLIF(expr1, expr2) 其中,expr1和expr2可以是任何类型的表达式,但它们应该是相同的数据类型或者可以隐式转换的类型。 在数学运算特别是除法运算中,除以零会导致错误。使用NULLIF可以有效避免这种错误。例如,我们要计算两个列A和B的比值,可以这样写: 12SELECT A, B, A / NULLIF(B, 0) AS resultFROM your_table; 这里,如果B为0,则NULLIF(B, 0)返回NULL,A / NULL也会返回NULL,从而避免了运行时错误。 在数据导入或处理过程中,我们可能会遇到一些特殊值需要转换为NULL以保持数据的一致性。例如,某些系统中使用-1表示数据缺失,我们可以使用NULLIF来转换这些值: 12SELECT NULLIF(column_name, -1)FROM your_table...
2020-08-14
mysql join
首先先放张图 今天聊聊mysql表join连接,其本质是拿主表每条数据取出来和子表每行数据进行循环比较,如果满足则返回,不满足返回null 首先是内连接 两者之间取交集,两边都满足返回,不满足不返回 语法很简单 1234567SELECT * FROM tb_goods a INNER JOIN tb_goods_desc b WHERE a.id = b.goods_id 其中,INNER可以省略掉只写个JOIN 然后是左外连接 左外连接,此时可以理解为理解 左表为主表,右表为子表。在条件不满足时,左表数据存在,右表数据为null 简单来说就是结果集包含左表所有行,右表不匹配则为null 12345SELECT * FROM sp_user a LEFT OUTER JOIN tb_seller b ON a.seller_id = b.seller_id 其中,OUTER可省略 反向操作一波就是右外连接 1234567SELECT * FROM tb_seller a RIGHT OUTER JOIN sp_user b ON a.seller_id = b.sell...
2021-04-07
mysql随机查询
明者见危于无形,智者见祸于未萌。——《三国志》 我们如果需要使用mysql进行随机取N条这样的操作 我们可以这样写 12345678-- 2.然后查询主表,与我们的tmp_table进行INNER JOIN[内连]SELECT * FROM `film` AS main_table JOIN -- 1.取出主表主键的最大值,与RAND()相乘[RAND()生成0到1的随机数],然后使用ROUND函数取整获得一个tmp_id(SELECT ROUND(RAND() * (SELECT MAX(`film_id`) FROM `film`)) AS tmp_id) AS tmp_table-- 3.条件为主表主键大于等于tmp_table.tmp_idWHERE main_table.`film_id` >= tmp_table.tmp_id-- 4.排序,限制条数,这里的可以任选ORDER BY main_table.`film_id` LIMIT 5; 这个是我认为效率比较高的随机查询了
2020-08-20
mysql一次给数据库所有表加字段
执行脚本 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950DROP PROCEDUREIF EXISTS addColumn;DELIMITER $$CREATE PROCEDURE addColumn () BEGIN-- 定义表名变量 DECLARE s_tablename VARCHAR ( 100 );/*显示表的数据库中的所有表SELECT table_name FROM information_schema.tables WHERE table_schema='databasename' Order by table_name ;*/#显示所有 DECLARE cur_table_structure CURSOR FOR SELECT table_name FROM INFORMATION_SCHEMA.TABLES -- databasename = 数据库名称 WHERE table...

阿超
我的名字叫阿超 年龄25岁 家在北京市 职业是软件开发 每天最晚也会在八点前回家 不抽烟 酒浅尝辄止 晚上十二点上床 保证睡足八个小时 睡前写一篇博客 再做二十分钟俯卧撑暖身 然后再睡觉 基本能熟睡到天亮 像婴儿一样不留下任何疲劳和压力 就这样迎来第二天的早晨 健康检查结果也显示我很正常 我想说明我是一个不论何时都追求内心平稳的人 不拘泥于胜负 不纠结于烦恼 不树立使我夜不能寐的敌人 这就是我在这社会的生活态度
Follow Me公告
This is my Blog