前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL Code Snippet

MySQL Code Snippet

作者头像
Yifans_Z
发布2023-08-23 18:44:25
1540
发布2023-08-23 18:44:25
举报
文章被收录于专栏:与荔枝一起成长

Tips SQL

代码语言:javascript
复制
-- 追踪优化器 Trace 功能
--  optimizer_trace_enabled=1
--  optimizer_trace_file=optimizer_trace.log
SELECT @@optimizer_trace;
SET optimizer_trace = 'enabled=on';
-- <your query>;
SET optimizer_trace = 'enabled=off';
select * from INFORMATION_SCHEMA.OPTIMIZER_TRACE;


-- 查看优化后的 SQL
-- 在联表查询时比较有效果
EXPLAIN <你的 SQL>;
SHOW WARNINGS;


-- 查看处理
SHOW PROCESSLIST;


-- 查看表结构
DESC user;

Function

代码语言:javascript
复制
-- https://www.w3schools.com/sql/func_mysql_find_in_set.asp
select FIND_IN_SET('bb', 'aa,bb,cc');
select FIND_IN_SET(null, '0');

ON vs USING

MySQL ON vs USING? | stackoverflow

删除重复数据

代码语言:javascript
复制
DELETE
FROM
  student
WHERE
  id NOT IN (
  SELECT
    id
FROM
  ( SELECT MIN( id ) AS id FROM student GROUP BY `name` ) tmp)

要多加一层 tmp 包装,否则会遇到:1093 - You can't specify target table 'student' for update in FROM clause

备份表

代码语言:javascript
复制
-- 创建同结构备份表
create table zzz_my_table_220727 like my_table;
-- 将需要数据写入备份表
insert into zzz_my_table_220727 select * from my_table ORDER BY id desc LIMIT 1000;
-- 情况原表
truncate table my_table;

SQL AND OR 执行优先级

代码语言:javascript
复制
select id from table01 where condition1 or condition2 and condition3;

-- 等价于:
select id from table01 where condition1 or (condition2 and condition3);
-- 而非:
select id from table01 where (condition1 or condition2) and condition3;

and 级别高于 or。相当于可以把 and 看成 乘号 *,把 or 看成 加号 +

References

– EOF –

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-01-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Tips SQL
  • Function
  • ON vs USING
  • 删除重复数据
  • 备份表
  • SQL AND OR 执行优先级
  • References
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档