
数据库
1加一
这个作者很懒,什么都没留下…
展开
-
MySQL case when 用法
MySQL 的 case when 的语法有两种:简单函数CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END搜索函数CASE WHEN [expr] THEN [result1]…ELSE [default] END注意:简单函数和搜索函数的区别,简单函数case后面有字段,when是值。搜索函数case没有,when 后面是表达式...原创 2021-02-09 11:25:41 · 519 阅读 · 0 评论 -
You can‘t specify target table ‘表名‘ for update in FROM clause错误
环境:MySQL8.0比如我要将用户表里名字(name)为空字符串("")的用户的状态(status)改成"1",我的写的SQL如下:UPDATE user_info SET STATUS = '1' WHERE USER_ID IN (SELECT USER_ID FROM user_info WHERE NAME != '');但是报了如下错误:You can’t specify target table ‘user_info’ for update in FROM clause因为在MY原创 2021-02-08 23:39:53 · 184 阅读 · 0 评论 -
MySQL SQL语句执行顺序
sql执行顺序fromjoinonwheregroup by(开始使用select中的别名,后面的语句中都可以使用)avg,sum…havingselectdistinctorder bylimit原创 2021-02-08 23:23:59 · 192 阅读 · 0 评论 -
LENGTH()和CHAR_LENGTH()的区别
1、char_length(str)(1)计算单位:字符(2)不管汉字还是数字或者是字母都算是一个字符2、length(str)(1)计算单位:字节(2)utf8编码:一个汉字三个字节,一个数字或字母一个字节。(3)gbk编码:一个汉字两个字节,一个数字或字母一个字节。...原创 2021-02-08 17:34:28 · 1873 阅读 · 0 评论 -
MYSQL实现排名函数RANK,DENSE_RANK和ROW_NUMBER
1. 排名分类1.1 区别RANK,DENSE_RANK和ROW_NUMBERRANK并列跳跃排名,并列即相同的值,相同的值保留重复名次,遇到下一个不同值时,跳跃到总共的排名。DENSE_RANK并列连续排序,并列即相同的值,相同的值保留重复名次,遇到下一个不同值时,依然按照连续数字排名。ROW_NUMBER连续排名,即使相同的值,依旧按照连续数字进行排名。区别如图:1.2 分组排名将数据分组后排名,区别如图:2. 准备数据创建一张分数表,里面有字段:分数score,课程号course原创 2021-02-08 16:28:48 · 480 阅读 · 0 评论 -
图解MySQL 内连接、外连接、左连接、右连接、全连接
用两个表(a_table、b_table),关联字段a_table.a_id和b_table.b_id来演示一下MySQL的内连接、外连接( 左(外)连接、右(外)连接、全(外)连接)。MySQL版本:Server version: 5.6.31 MySQL Community Server (GPL)数据库表:a_table、b_table主题:内连接、左连接(左外连接)、右连接(右...转载 2019-04-24 18:24:22 · 131 阅读 · 0 评论 -
SQL语句执行顺序
SQL Select语句完整的执行顺序:1、from子句组装来自不同数据源的数据;2、where子句基于指定的条件对记录行进行筛选;3、group by子句将数据划分为多个分组;4、使用聚集函数进行计算;5、使用having子句筛选分组;6、计算所有的表达式;7、select 的字段;8、使用order by对结果集进行排序。SQL语言不同于其他编...转载 2019-04-25 14:28:47 · 137 阅读 · 0 评论