mysql 基础(持续更新)

1.where条件转移

sum(if(startTime>xxx and endTime>xxx,money,0)): 满足条件的部分进行求和

count(if(startTime>xxx and endTime>xxx,1,null)):满足条件的部分进行计数

sum(if(startTime>xxx and endTime>xxx,CASE WHEN ... THEN ...,0)): 满足条件的部分进行分类求和

2.IFNULL(sum(case when xxx = '0' then 1 else 0 end),0) as num: 满足条件的累加1

3.json_extract()获取json数据key的value值,方便映射到实体类

json测试数据:

{
    "no": "7",
    "title": "运动方式",
	"text":"测试",
    "content": [{
        "text": "您平时经常进行的运动及时间",
        "item1": [{
            "text": "慢跑 / 快走 / 走跑结合",
            "type": "select",
            "value": "selected"
        }, {
            "text": "上下楼梯 / 爬山",
            "type": "multselect",
            "value": "selected"
        }],
        "item2": [{
            "text": "慢跑222走跑结合",
            "type": "text",
            "value": "慢跑2"
        }, {
            "text": "上下楼梯 / 爬山2",
            "type": "number",
            "value": "33"
        }]
    }]
}

json_extract( t.jsonstr, '$.*' ): 返回全部json的value

["7", "运动方式", [{"text": "您平时经常进行的运动及时间", "item1": [{"text": "慢跑 / 快走 / 走跑结合", "type": "select", "value": "selected"}, {"text": "上下楼梯 / 爬山", "type": "multselect", "value": "selected"}], "item2": [{"text": "慢跑222走跑结合", "type": "text", "value": "慢跑2"}, {"text": "上下楼梯 / 爬山2", "type": "number", "value": "33"}]}]]

json_extract( t.jsonstr, '$.title' ): 返回json中key=”title”的value

"运动方式"

json_extract( t.jsonstr, '$.content' ): 返回json中key=”content”的value

[{"text": "您平时经常进行的运动及时间", "item1": [{"text": "慢跑 / 快走 / 走跑结合", "type": "select", "value": "selected"}, {"text": "上下楼梯 / 爬山", "type": "multselect", "value": "selected"}], "item2": [{"text": "慢跑222走跑结合", "type": "text", "value": "慢跑2"}, {"text": "上下楼梯 / 爬山2", "type": "number", "value": "33"}]}]

json_extract( t.jsonstr, '$**.text' ): 返回最内层所有key=”text”的数据

["您平时经常进行的运动及时间", "慢跑 / 快走 / 走跑结合", "上下楼梯 / 爬山", "慢跑222走跑结合", "上下楼梯 / 爬山2"]

json_extract( t.jsonstr, '$.content[*].item1[*]' ): 返回json中key=content中item1的value

[{"text": "慢跑 / 快走 / 走跑结合", "type": "select", "value": "selected"}, {"text": "上下楼梯 / 爬山", "type": "multselect", "value": "selected"}]

3.using关键字

using等价于join操作中的on,例如两个表根据id字段进行关联,那么以下两种写法是等价的:
1)using(id)
2)on a.id=b.id
以下2个查询是等价的:
select a.name,b.age from test as a
join test2 as b on a.id=b.id

select a.name,b.age from test as a
join test2 as b using(id)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: MySQL的分表是指将一个大表拆分成多个小表,以提高查询性能和减少存储空间的技术。分表可以按照不同的规则进行,比如按照某个字段的取值范围、按照时间等。分表的优点是可以减少单个表的数据量,提高查询效率,同时也可以减少存储空间的占用。然而,分表也会带来一些挑战,比如需要处理跨表查询的问题,以及在数据迁移和维护时需要额外的工作量。在分表时,需要考虑好分表的规则和分表后的数据一致性问题。此外,还可以通过优化SQL语句、建立索引、调整数据库配置等方式来提高MySQL的性能。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [110道 MySQL面试题及答案 (持续更新)](https://blog.csdn.net/u012889902/article/details/121677978)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [MySQL面试问题汇总(2022)](https://blog.csdn.net/jeremy_ke/article/details/127896440)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值