sql
丿沐染烟忱丶
昨夜西风凋碧树,独上高楼,望尽天涯路!
衣带渐宽终不悔,为伊消得人憔悴!
众里寻他千百度。蓦然回首,那人却在灯火阑珊处!
展开
-
sql FIND_IN_SET函数实现一行变多行
介绍 FIND_IN_SET(str,strlist):返回str在strlist中所在的位置,没有返回0。注:strlist必须以逗号分隔。 数据准备 select 'a' a,'1,2' b union all select 'b' a,'1,2,3' b select 1 id,'t1' v union ALL select 2 id,'t2' v union ALL select 3 id,'t3' v 将上表转为以下结果 实现sql select t1.a,t2.id from原创 2021-07-12 17:46:06 · 274 阅读 · 0 评论 -
格式化生成年、季、月、周的sql语句
根据具体的业务需求,把下面sql语句的时间换成自己想要格式化的时间即可。 年 SELECT date_format( '2021-07-05 14:55:17', '%Y年' ) sj 月 SELECT date_format( '2021-07-05 14:55:17', '%Y年%m月' ) sj 季度 SELECT concat(CONVERT ( date_format( '2021-07-05 14:55:17', '%Y' ) USING utf8mb4 ),'年第',floor(((d原创 2021-07-05 09:45:55 · 787 阅读 · 0 评论 -
mysql:ON DUPLICATE KEY UPDATE
ON DUPLICATE KEY UPDATE ON DUPLICATE KEY UPDATE是mysql独有的一种语句,目的是当需要插入的数据存在时,会执行update,否则执行insert。 注: 由于是mysql独有的语句,那么在数据移植是需要注意;而且此语句必须配合唯一索引或者主键使用。 例 表中数据如下: 表中有id为1的数据情况: //有数据name修改为楚风,否则添加一条name为叶凡的数据 INSERT INTO user(id,name,age) VALUES(1,"叶凡",16) ON原创 2021-06-02 15:27:11 · 544 阅读 · 0 评论 -
order by和case when联用
今天遇到了一个需求,数据分为了两部分,一部分按照时间正排,另一部分按照时间倒排。我用的方法就是order by和case when联用(也可以用union,不过语句比较多)。 案例 有以下几条数据: dp为1的按照时间正排,为2的按照时间倒排。 SELECT id,name,time,dp FROM USER ORDER BY dp,//可写可不写,只是按照dp正排 CASE WHEN dp = 1 THEN time END ASC, CASE WHEN dp = 2 THEN time END原创 2021-05-20 15:34:03 · 1605 阅读 · 0 评论