DATE_FORMAT 时间转换
SELECT '2023-01-02 03:04:05'; -- 输出:2023-01-02 03:04:05
SELECT DATE_FORMAT('2023-01-02 03:04:05', '%Y-%m-%d'); -- 输出:2023-01-02
SELECT DATE_FORMAT('2023-01-02', '%Y-%m-%d %H:%i:%s'); -- 输出:2023-01-02 00:00:00
常用占位符有:
%Y:四位数的年份(例如:2023)
%m:两位数的月份(01-12)
%d:两位数的日期(01-31)
%H:24小时制的小时数(00-23)
%i:两位数的分钟数(00-59)
%s:两位数的秒数(00-59)
CONCAT 字符拼接
在MySQL中,CONCAT(str1, str2, ..., strn) 字符拼接参数的数量有一定限制(通常为4096个参数)
CONCAT()
函数接受多个参数,将它们按顺序连接在一起形成一个新的字符串。
获得数据库名FOR下所有的 数据表名、截断表的SQL语句!
SELECT '我是谁?'; -- 输出:我是谁?
SELECT CONCAT('我是谁?','🛻','✈️'); -- 输出:我是谁?🛻✈️
-- 注意 如果遇到NULL,整个函数返回都是NULL
SELECT CONCAT('Apple', NULL, 'Orange'); -- 输出:NULL
SELECT CONCAT('Apple', IF(NULL IS NOT NULL,'原本的NULL',''), 'Orange'); -- 输出:AppleOrange
-- 示例
SELECT
TABLE_NAME,
CONCAT( "TRUNCATE TABLE ", TABLE_NAME, ";" )
FROM
information_schema.TABLES
WHERE
TABLE_SCHEMA = 'FOR'
CONCAT_WS 分隔符拼接
在MySQL中,CONCAT_WS(separator, str1, str2, ..., strn) 参数的数量有一定限制(通常为4096个参数)
参数:separator
是用作分隔符的字符串,str1, str2, ..., strn
是要连接的字符串。
SELECT CONCAT_WS(',', 'Apple', NULL, 'Orange'); -- 输出:Apple,Orange
SELECT CONCAT_WS(',', 'Apple', IF(NULL IS NOT NULL,'原本的NULL',''), 'Orange'); -- 输出:Apple,,Orange
CHAR_LENGTH 计算字符个数
使用方式:CHAR_LENGTH('待检查的内容')
SELECT CHAR_LENGTH("ab"); -- 输出:2
SELECT CHAR_LENGTH("123"); -- 输出:3
SELECT CHAR_LENGTH("你好世界"); -- 输出:4
SELECT CHAR_LENGTH("你好世界") + CHAR_LENGTH("zanglikun.com"); -- 输出:17
LENGTH 计算字节数
SELECT CHAR_LENGTH('你好'); -- 输出:2
SELECT LENGTH('你好'); -- 输出:6
-- 说明在数据库字符集utf8mb4下中文占用3个字节
IF 条件判断
使用方式:本意就是:IF(条件, 条件true执行, 条件false执行)
SELECT IF('abc'='abc','对了','错了'); -- 输出:对了
SELECT IF('abc'='abcd','对了','错了'); -- 输出:错了
SELECT IF('abc'='abcd', '不是我',IF(TRUE,'我在这里','也不是我')); -- 输出:我在这里
SUBSTRING 位数范围截取
SUBSTRING(string,start_position,length) 位数范围截取
三个参数的含义:string目标字符串,start_position 从第几位开始截取,length从左到右开始截取x位。注意MySQL首位是1,不是Java数组概念中的0
-- 截取Hello,World中第一位到第五位。
SELECT SUBSTRING('Hello,World', 1, 5); -- 输出:Hello
-- 截取ld 注意from是负数没有任何含义,因为to是从左到右,所以没有意义!
SELECT SUBSTRING('Hello,World', 10, 2); -- 输出:ld
SELECT SUBSTRING('Hello,World', -2, 2); -- 输出:ld
SELECT SUBSTRING('Hello,World', 2) -- 去除前2位 输出:ello,World
SUBSTRING_INDEX 分隔符截取
SUBSTRING_INDEX(string,separator,count) 接受三个参数:string字符串、separator分隔符和count计数。计数参数决定了要返回的部分的位置。
注意计数的参数可以是正数、也可以是负数。正数,就是从字符串头部选择。负数,就是从字符串尾部倒着第x位,就是-x。
-- 示例用法:截取Hello,World,HI,CHINA中以','分割后取第x个
SELECT SUBSTRING_INDEX('Hello,World,HI,CHINA', ',', 1); -- 输出:Hello
SELECT SUBSTRING_INDEX('Hello,World,HI,CHINA', ',', 2); -- 输出:Hello,World
SELECT SUBSTRING_INDEX('Hello,World,HI,CHINA', ',', 3); -- 输出:Hello,World,HI
SELECT SUBSTRING_INDEX('Hello,World,China', ',', 4); -- 输出:Hello,World,China
SELECT SUBSTRING_INDEX('Hello,World,China', ',', 3); -- 输出:Hello,World,China
SELECT SUBSTRING_INDEX('Hello,World,China', ',', 2); -- 输出:Hello,World
SELECT SUBSTRING_INDEX('Hello,World,China', ',', 1); -- 输出:Hello
SELECT SUBSTRING_INDEX('Hello,World,China', ',', 0); -- 输出:空白
SELECT SUBSTRING_INDEX('Hello,World,China', ',', -1); -- 输出:CHINA
SELECT SUBSTRING_INDEX('Hello,World,China', ',', -2); -- 输出:World,China
SELECT SUBSTRING_INDEX('Hello,World,China', ',', -3); -- 输出:Hello,World,China
SELECT SUBSTRING_INDEX('Hello,World,China', ',', -4); -- 输出:Hello,World,China
-- 提取:Hello,World,China中的Wordld
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('Hello,World,China', ',', 2), ',', -2); -- 输出:Hello,World
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('Hello,World,China', ',', 2), ',', -1); -- 输出:World
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('Hello,World,China', ',', 2), ',', 0); -- 输出:空白内容
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('Hello,World,China', ',', 2), ',', 1); -- 输出:Hello
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('Hello,World,China', ',', 2), ',', 2); -- 输出:Hello,World
UPPER 大写
SELECT UPPER('abcEFG你好123'); -- 输出:ABCEFG你好123
LOWER 小写
SELECT LOWER('abcEFG你好123'); -- 输出:abcefg你好123
特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤
评论(0)