使用mysql一些总结

1.将字段的所有值拼接成字符串:group_concat

用法:group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])

2.将时间戳转日期:from_unixtime

用法:FROM_UNIXTIME(unix_timestamp,format),

其中fomat格式如: '%Y-%m-%d %H:%i:%S'

3.将日期转时间戳:date_format

用法:DATE_FORMAT(date, format)

4.if

用法:IF(condition, v1, v2),

其中condition为true时返回v1,否在返回v2

5.case...when

用法:case 字段 when 比较值1 then  返回值1 when 比较值2 then 返回值2 else 返回值3 end,

其中字段的值 = 比较值1,则为返回值1,如果都不等于比较值1或者比较值2,则为返回值3

6.@用户变量

用法:@tmp:=字段或值

个人总结:

1.如果想获取某个字段的所有值,而且数据量不大,又不想使用循环,我们可以使用group_concat函数帮我们处理好。

2.时间函数我们一般用在对时间戳格式化日期或者按日/月/周/年等对数据分组统计,如果在where条件中使用了time字段,并且已经知道time的范围,那么我们尽量不要使用mysql的函数,因为如果数据量过大,可能查询速度会减慢。

3.有时我们使用case...when...then...else...end会和group by同时使用。

4.@用户变量的使用有时和if同时使用或者我们可以对数据排序(数据量小对查询速度影响不大)。

参考https://www.cnblogs.com/wenxinphp/p/5841430.html

       https://www.cnblogs.com/haorenergou/p/7927591.html

       https://www.cnblogs.com/yangchunze/p/6669523.html

       https://www.cnblogs.com/raobenjun/p/7998467.html

       https://blog.csdn.net/u011649691/article/details/79059990

猜你喜欢

转载自blog.csdn.net/janthinasnail/article/details/90713995