文档章节

sql 基础知识

DrChenXX
 DrChenXX
发布于 01/21 23:18
字数 457
阅读 164
收藏 0

sql 基础知识

不要极至最求一条sql语句搞定一切,可合理拆分为多条语句

1. sql 变量定义与赋值

  1. Sql 语句中,直接在SELECT使用@定义一个变量,如:@a

  2. 使用:=来给变量赋值,:@a:=123,则变量a的值为123。

    SELECT @a := id FROM table_a
    
  3. 同时定义多个变量,需要在子语句中定义

    SELECT @a := 1 FROM table_a,(SELECT @b := 2,@c := 3) as rcrcia
    
  4. 例子

    根据子查询结果,将主查询结果进行排序

    # 使用 find_in_set 查询ID排序位置
    select id, find_in_set(id, @rank) `rank`
    from user,
    			# 声明定义变量 赋值为 子查询结果 结果为 '3,1,31'
         (SELECT @rank := (SELECT group_concat(content_id) as content_id
                        FROM `collect_records`
                        WHERE user_id = 1
                        order by creation_time desc)) as indexRank
    # 查询符合子查询结果的数据                    
    where find_in_set(id, @rank) > 0
    # 根据排序值排序
    order by `rank`;
    

2.sql if 表达式

if(A,B,C)表示,如果A条件成立,那么执行B,否则执行C

@abc := if(2>1,100,200)
> @abc = 100

3.sql case...when...then

  1. CASE 后面不带表达式

    CASE WHEN expression THEN 操作1
    
         WHEN expression THEN 操作2
    
         .......
    
         ELSE 操作n
    
    END
    
    
  2. CASE 后面带表达式,此时WHEN 后面的则是该表达式可能的值

    CASE expression
    
    WHEN  值1 THEN  操作1
    
    WHEN  值2 THEN  操作2
    
         .......
    
        ELSE 操作n
    
    END 
    
    

注:自上而下,凡是走了其中一个when或者是走了else了,其他的都不再走了。

4. group_concat()

请注意,该函数有拼接字符串最大长度限制。并且,与 limit不能共存。

© 著作权归作者所有

上一篇: mysql 函数
DrChenXX
粉丝 12
博文 107
码字总数 30420
作品 0
金华
高级程序员
私信 提问
加载中

评论(0)

Oracle数据库学习的福利来啦——最佳入门经验分享

适用人群:从事数据库技术实施或售后工程师,准备参加OCA,OCP认证考试 通过学习对Oracle数据库的相关基础知识进行梳理,最终共同提炼出必须最先掌握的那部分知识,无论你是数据库开发、管理、...

让往事随风
2016/04/13
111
0
MySQL入门教程系列-1.5 如何学习MySQL

在这里持续更新 MySQL入门教程系列-1.5 如何学习MySQL 如何学习 MySQL 这是一个伪命题,每个人都有适合自己的一套学习方法,各

同一种调调
2016/09/28
58
0
PHP职业规划

PHP职业规划 初级PHP程序员 需要掌握知识点: HTML 熟练 CSS 熟练 Javascript 基础 jQuery 基础 SQL 基础 PHP 熟练 职业要求 能够独立进行网页制作与排版 能够制作简单的前端效果 或 将前端效...

染墨青衿
2014/12/22
6
0
软件测试面试干货分享

人生的选择的道路有很多,选择好了一个方向后,接下来就是专心的去研究。在选择软件测试行业之前,我是有1年的iOS开发经验.之所以选择软件测试,因为我思考问题比较细致、考虑问题全面加上我...

邵琼
2017/06/09
0
0
SQL Servr 2008空间数据应用系列五:数据表中使用空间数据类型

  友情提示,您阅读本篇博文的先决条件如下:   1、本文示例基于Microsoft SQL Server 2008 R2调测。   2、具备 Transact-SQL 编程经验和使用 SQL Server Management Studio 的经验。 ...

beniao
2011/02/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

易鑫车贷人工客服电话是多少

易鑫车贷人工客服电话是多少O29-63O37558人工客服电话O29-688O2826方法,大家可以采取一些传统的方式,比如说打开易鑫车贷,然后设置,就会看到帮助与反馈的字眼,然后大家打开这到各种各样的问题...

fgrf
今天
41
0
IntelliJ 如何找到项目中 Deprecated 的方法

在一个项目中,如果我们标记了某些元素为 Deprecated 的话,如何让我们能够快速找到? 简单来说,你可以对项目进行 Code Inspection。 选择 Analyze > Inspect Code 在弹出的对话框中,对整个...

honeymoose
今天
93
0
Java中的排序算法:冒泡排序

学习了一种新的排序算法:冒泡排序,冒泡排序是一种交换排序,指比较相邻的两个元素,如果前者比后者大,就交换位置,继续进行比较。 通过例子来实现: import java.util.Arrays; public cl...

北芷南姜
今天
73
0
OSChina 周五乱弹 —— 你不仅要背负工作,还要背负领导

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《Cold Rain》- AniFace 手机党少年们想听歌,请使劲儿戳(这里) @明月依稀 :露...

小小编辑
今天
569
4
个人环境之ubuntu的apt-get 总结

前言 apt-get是必须要学会的,如果搞定apt-get,可解决很多问题。接下来鸟才啊总结以往经验。 场景一 指定安装版本 先查看有软件有那些版本可以安装 apt-cache madison gcc-4.8 gcc-4.8 ...

鸟菜啊
今天
67
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部