sql常用的操作
CONCAT函数
解释
1、功能:将多个字符串连接成一个字符串。
2、语法:concat(str1, str2,...)
返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。
SELECT CONCAT(id, ' ', task_name, ' ', FROM_UNIXTIME(task_start_tms/1000, "%Y-%m-%d"))
FROM kp_report_dt
结果:
CONCAT(id, ' ', task_name, ' ', FROM_UNIXTIME(task_start_tms/1000, "%Y-%m-%d"))
7477 des 2020-06-08
7478 dew 2020-06-08
7479 cfdfd 2020-06-08
业务用法
UPDATE kp_report_dt set task_name= CONCAT("测试", FROM_UNIXTIME(task_start_tms/1000, "%Y-%m-%d")) where task_type="Task"```
结果:将某两个字段按照自己样式重新定义结果
id time_create task_id task_desc task_name task_start_tms task_type
7477 2020-06-16 18:02:58.687577 2e065c18fe6b07e72fb3d306ff589350 eea 测试2020-06-08 1591581604445 Task
7493 2020-06-16 18:03:07.933879 9f3d6735f3cdb30aedb011190f3ba113 azzx 测试2020-06-09 1591683000395 Task
7539 2020-06-16 18:03:43.673299 65a94859e4347e3b23e91c8b0a220e2e wqeq 测试2020-06-10 1591766591440 Task
7540 2020-06-16 18:03:44.132099 ac05d08aba1f3e9b54873c72abeafed5 wqe 测试2020-06-10 1591766690989 Task
FROM_UNIXTIME函数
-- unix 时间戳 转换成 '2019-01-22 15:45:06'
select FROM_UNIXTIME(timelong) from testsssssss; ```
UNIX_TIMESTAMP函数
-- 时间'2019-01-22 15:45:06' 转换成 unix 时间戳 格式化时间--》unix timestamp
select UNIX_TIMESTAMP(time) from testsssssss;
CONCAT_WS函数
1、功能:和concat()一样,将多个字符串连接成一个字符串,但是可以一次性指定分隔符~(concat_ws就是concat with separator)
2、语法:concat_ws(separator, str1, str2, ...)
说明:第一个参数指定分隔符。需要注意的是分隔符不能为null,如果为null,则返回结果为null。```
用法和concat一样,不再赘述
str_to_date
-- 字符串转时间,格式化
select str_to_date('2019-01-22','%Y-%m-%d') from testsssssss;
DATE_FORMAT
-- 时间转字符串, 格式化
select DATE_FORMAT(time,'%Y-%m-%d %H:%i:%s') from testsssssss;
LEFT(s,n)
返回字符串 s 的前 n 个字符
SELECT LEFT('runoob',2) -- ru
连接查询
原始表
评论表mi_ckeditor_choice
文章表mi_ckeditor_question
内连接
关键字:inner join on
语句:select * from a_table a inner join b_table b on a.a_id = b.b_id;
说明:组合两个表中的记录,返回关联字段相符的记录,也就是返回两个表的交集(阴影)部分。
SELECT * FROM
`mi_ckeditor_question` a
INNER JOIN
mi_ckeditor_choice b
on
a.author_id=b.author_id
结果:
左连接查询 left join
关键字:left join on / left outer join on
语句:SELECT * FROM a_table a left join b_table b ON a.a_id = b.b_id;
说明: left join 是left outer join的简写,它的全称是左外连接,是外连接中的一种。 左(外)连接,左表(a_table)的记录将会全部表示出来,而右表(b_table)只会显示符合搜索条件的记录。右表记录不足的地方均为NULL。
SELECT * FROM
`mi_ckeditor_question` a
LEFT JOIN
mi_ckeditor_choice b
on
a.author_id=b.author_id
结果:
右连接 right join
关键字:right join on / right outer join on
语句:SELECT * FROM a_table a right outer join b_table b on a.a_id = b.b_id;
说明:right join是right outer join的简写,它的全称是右外连接,是外连接中的一种。与左(外)连接相反,右(外)连接,左表(a_table)只会显示符合搜索条件的记录,而右表(b_table)的记录将会全部表示出来。左表记录不足的地方均为NULL。
SELECT * FROM
`mi_ckeditor_question` a
RIGHT JOIN
mi_ckeditor_choice b
on
a.author_id=b.author_id
结果:
更多的请看菜鸟教程点我