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

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

相关推荐
2020-07-01
避免循环操作数据库
今天看到公司实习写的代码。。。 1234567for (Long id : ids) { //查询 TbGoods tbGoods = goodsMapper.selectByPrimaryKey(id); tbGoods.setIsDelete("1"); //逻辑删除 //修改 goodsMapper.updateByPrimaryKey(tbGoods); } 这是,循环操作数据库?! 晕。。。希望以后不再看到这样的代码。。。 我给他写了个mapper.xml里的sql,用 where id in()替代,这样只有一条sql语句了 1234567891011<!-- 根据主键查询数据 --> <select id="selectByPrimaryKeys" resultMap="BaseResultMap" parameterType="list&q...
2023-04-27
SUBSTRING_INDEX
天下兴亡,匹夫有责——顾炎武 分享一个函数 SUBSTRING_INDEX 1SUBSTRING_INDEX( your_column , char, 1 ) 可以像split一样截取片段 例如 1SUBSTRING_INDEX( '1.00' ,'.',1 ) 得到1 例如 1SUBSTRING_INDEX( '1.00' ,'.',-1 ) 得到00
2020-12-05
explain
人们很少做他们相信是对的事,他们做比较方便的事,然后后悔。——鲍勃.迪伦 使用explain+SQL 作用: 表的读取顺序 数据读取操作的操作类型 哪些索引可以使用 哪些索引被实际使用 表之间的引用 每张表有多少行被优化器查询 id select_type table partitions type possible_keys key key_len ref rows filtered Extra id:查询的序列号,包含一组数字,表示查询中执行select字句或操作表的顺序id值越大执行优先级越高,id相同情况下执行顺序从上到下 select_type:查询的类型,主要是用于区别普通查询、联合查询、子查询等的复杂查询simple简单的select查询,不包含子查询、UNION primary子查询的最外层 subquery子查询的内层 derived表示 FROM临时表,这个表被标记为衍生 union在union后面的查询,若union包含在from字句的子查询中,外层select被标记为derived union result从union表获取结果的select t...
2021-07-08
自用模板sql
真正的伟人,能在愚昧和喧嚣的物质世界中,静心倾听荒漠的声音。——深泉学院(美国) 自用sql,我建站时每张表必备如下字段: 12345678DROP TABLE IF EXISTS `common_template`;CREATE TABLE `common_template` ( `id` bigint(0) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `gmt_deleted`datetime(0) DEFAULT NULL COMMENT '逻辑删除字段 NULL未删除 有值表示已删除,值为删除时间', `gmt_create` datetime(0) NOT NULL COMMENT '现在时表示主动式创建', `gmt_modified` datetime(0) NOT NULL COMMENT '过去分词表示被动式更新', PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB CH...
2022-06-08
mysql修改字符集
我需要,最狂的风,和最静的海。——顾城《世界和我·第八个早晨》 首先是查看字符集格式 1show variables where variable_name like '%character%' 然后是存储过程,用于修改表内所有字段的字符集 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 ...
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...
