leetcode-數(shù)據(jù)庫學(xué)習(xí)記錄
mysql limit和offset用法
limit和offset用法
mysql里分頁一般用limit來實現(xiàn)
1.select* from article LIMIT 1,3
2.select * from article LIMIT 3 OFFSET 1
上面兩種寫法都表示取2,3,4三條條數(shù)據(jù)
當(dāng)limit后面跟兩個參數(shù)的時候,第一個數(shù)表示要跳過的數(shù)量,后一位表示要取的數(shù)量,例如
select* from article LIMIT 1,3 就是跳過1條數(shù)據(jù),從第2條數(shù)據(jù)開始取,取3條數(shù)據(jù),也就是取2,3,4三條數(shù)據(jù)
當(dāng) limit后面跟一個參數(shù)的時候,該參數(shù)表示要取的數(shù)據(jù)的數(shù)量
例如 select* from article LIMIT 3 表示直接取前三條數(shù)據(jù),類似sqlserver里的top語法。
當(dāng) limit和offset組合使用的時候,limit后面只能有一個參數(shù),表示要取的的數(shù)量,offset表示要跳過的數(shù)量 。
例如select * from article LIMIT 3 OFFSET 1 表示跳過1條數(shù)據(jù),從第2條數(shù)據(jù)開始取,取3條數(shù)據(jù),也就是取2,3,4三條數(shù)據(jù)
mysql中變量不用事前申明,在用的時候直接用“@變量名”使用就可以了。
第一種用法:set @num=1; 或set @num:=1; //這里要使用變量來保存數(shù)據(jù),直接使用@num變量
第二種用法:select @num:=1; 或 select @num:=字段名 from 表名 where ……
注意上面兩種賦值符號,使用set時可以用“=”或“:=”,但是使用select時必須用“:=賦值
mysql行轉(zhuǎn)列,列轉(zhuǎn)行
行列轉(zhuǎn)換就是如下圖所示兩種展示形式的互相轉(zhuǎn)換:
(上表/行表:student1;下表/列表:student2)

行轉(zhuǎn)列
【行轉(zhuǎn)列——MAX/SUM+CASE WHEN+GROUP BY】
SELECT name,
MAX(CASE WHEN subject=‘語文’ THEN score ELSE 0 END) AS “語文”,
MAX(CASE WHEN subject=‘?dāng)?shù)學(xué)’ THEN score ELSE 0 END) AS “數(shù)學(xué)”,
MAX(CASE WHEN subject=‘英語’ THEN score ELSE 0 END) AS “英語”
FROM student1
GROUP BY name
列轉(zhuǎn)行
【列轉(zhuǎn)行——MAX+UNION+GROUP BY】
SELECT NAME,‘語文’ AS subject,MAX(“語文”) AS score
FROM student2 GROUP BY NAME
UNION
SELECT NAME,‘?dāng)?shù)學(xué)’ AS subject,MAX(“數(shù)學(xué)”) AS score
FROM student2 GROUP BY NAME
UNION
SELECT NAME,‘英語’ AS subject,MAX(“英語”) AS score
FROM student2 GROUP BY NAME

浙公網(wǎng)安備 33010602011771號