登录
首页 >  数据库 >  MySQL

mysql(常用)

来源:SegmentFault

时间:2023-02-16 15:25:23 481浏览 收藏

在数据库实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《mysql(常用)》,聊聊MySQL,希望可以帮助到正在努力赚钱的你。

常用的操作

  • 自增重新计数

truncate table `tableName`
  • 分页查询

// tableName 表名,skipNum 跳过条数,limitNum 限制查询的条数
SELECT * from tableName LIMIT skipNum, limitNum
  • 字符串替换

// 字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串
SELECT INSERT(s1,x,len,s2)
//     将字符串 s2 替代字符串 s 中的字符串 s1
select REPLACE(s,s1,s2)
  • 字符串替换

// 字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串
SELECT INSERT(s1,x,len,s2)
//     字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串
select SUBSTRING(s, start, length)
  • 多行合为一行

// 
select id,group_concat(name) from aa group by id;
  • 多列合为一列

// 字符串 s1,s2 等多个字符串合并为一个字符串
select CONCAT(s1,s2...sn)

// 同 CONCAT(s1,s2,...) 函数,但是每个字符串直接要加上 x,x 可以是分隔符
select CONCAT_WS(x, s1,s2...sn)
  • ifnull

// 如果 v1 的值不为 NULL,则返回 v1,否则返回 v2。
IFNULL(v1,v2)
  • if

// 如果表达式 expr 成立,返回结果 v1;否则,返回结果 v2。
IF(expr,v1,v2)
  • case查询不同条件结果

/**
 * 查询不同创建时间下的sum
 */
select a.goods_source, 
    sum(case when a.create_time between '${timeArr[0]}' and '${timeArr[1]}' then b.number else 0 end)as nowData,
    sum(case when a.create_time between '${lastTimeArr[0]}' and '${lastTimeArr[1]}' then b.number else 0 end)as lastData
from e_consumption a
    left join e_sale_goods b on a.id = b.consumption_id
where a.disabled = 0 and a.deleted = 0
    and a.paid = 1 and (a.deliver_status = 'not_out' or a.deliver_status = 'partial_out')
    and a.store_id in (${storeIdList})
group by a.goods_source

本篇关于《mysql(常用)》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于数据库的相关知识,请关注golang学习网公众号!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表