MySQL函数笔记

mysql

ON DUPLICATE KEY UPDATE

语句的作用,当insert已经存在的记录时,执行Update

-- 在原sql后面增加 ON DUPLICATE KEY UPDATE 
INSERT INTO user_admin_t (_id,password) 
VALUES ('1','第一次插入的密码') 
ON DUPLICATE KEY UPDATE 
_id = 'UpId',
password = 'upPassword';

concat()函数

concat()

1、功能:将多个字符串连接成一个字符串。

2、语法:concat(str1, str2,…)

返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。

3、举例:

例1:select concat (id, name, score) as info from tt2;

concat_ws()函数

1、功能:和concat()一样,将多个字符串连接成一个字符串,但是可以一次性指定分隔符~(concat_ws就是concat with separator)

2、语法:concat_ws(separator, str1, str2, …)

说明:第一个参数指定分隔符。需要注意的是分隔符不能为null,如果为null,则返回结果为null。

3、举例:

例1:select concat_was(’,’,id,name,score) as info from tt2

group_concat()函数

1、功能:将group by产生的同一个分组中的值连接起来,返回一个字符串结果。

2、语法:group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator ‘分隔符’] )

说明:通过使用distinct可以排除重复值;如果希望对结果中的值进行排序,可以使用order by子句;separator是一个字符串值,缺省为一个逗号。

例1:

SELECT
            hp.id,
            hp.post_title,
            hp.draft_decision,
            hp.draft_interpretation,
            (SELECT GROUP_CONCAT(`name` SEPARATOR '、') from h_column WHERE h_column.post_management_id=hp.id) as columnName,
            hp.decision_public_start,
            hp.decision_public_end,
            hp.opinion_solicitation_start,
            hp.opinion_solicitation_end,
            hp.opinion_feedback_start,
            hp.opinion_feedback_end
        FROM
            h_post_management AS hp
        WHERE hp.id = #{id}

连接

在这里插入图片描述

**内连接:**指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。(内连接查询结果与表的顺序无关)

**外连接:**连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行。包括左外连接、右外连接和全外连接。

  • 左外连接(left jion):左边表数据行全部保留,右边表保留符合连接条件的行。
  • 右外连接(right jion):右边表数据行全部保留,左边表保留符合连接条件的行。
  • 全外连接:左外连接 union 右外连接。

Union 和 Union All

Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;

Union All:对两个结果集进行并集操作,包括重复行,不进行排序;

格式化函数FORMAT(x,n)

FORMAT(x,n)函数可以将数字x进行格式化,将x保留到小数点后n位。这个过程需要进行四舍五入。

case when

  1. 简单函数
    CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END
  2. 搜索函数
    CASE WHEN [expr] THEN [result1]…ELSE [default] END

简单函数

SELECT
	NAME '英雄',
	CASE NAME
		WHEN '德莱文' THEN
			'斧子'
		WHEN '德玛西亚-盖伦' THEN
			'大宝剑'
		WHEN '暗夜猎手-VN' THEN
			'弩'
		ELSE
			'无'
	END '装备'
FROM
	user_info;

在这里插入图片描述

搜索函数

 --when 表达式中可以使用 and 连接条件
SELECT
	NAME '英雄',
	age '年龄',
	CASE
		WHEN age < 18 THEN
			'少年'
		WHEN age < 30 THEN
			'青年'
		WHEN age >= 30
		AND age < 50 THEN
			'中年'
		ELSE
			'老年'
	END '状态'
FROM
	user_info;

在这里插入图片描述

mysql函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值