前言:近來開始寫後端,先從小bug入手,記錄下有趣的sql
1.需求:根據表中的a欄位排序,然後再根據b欄位去重
2.實現:
第乙個sql語句:
select distinct
name
from
student
where
id='1111'
order by
age desc
發現結果集中已去重,但是並沒有依據需求排序。查了一些資料,說需要將排序的字段新增到去重列中,這明顯不符合初衷。有的mysql版本還會報錯。
第二個sql語句:
select distinct
name
from
( select
name
from
sutdent
where
id='1111'
order by
age desc
) as a
將結果集包裹一下,然後起個別名(不起別名會報錯),再次查詢,返回的結果集符合預期。 關於分組後去重的Mysql寫法
背景 每個人可以在多個店下單,在同一家店可以多次下單.如果要查詢每個店的交易人數,就需要把店分組後再篩選掉重複的買家。關鍵字distinct 字段 存在兩條完全相同的紀錄去重成一條 group by分組 如果是這種情況的話用distinct是過濾不了的,這就要用到主鍵id的唯一性特點及group b...
mysql 排序優先 sql優先排序
廣告表info ad裡有在用的服務 end time沒有過期 過期的了服務,需要這樣取出前30個廣告編號 ad id 在用的服務優先取出來,如果不夠30個,就隨機取過期的服務,直到總共30個為止,廣告表info ad裡有在用的服務 end time沒有過期 過期的了服務,需要這樣取出前30個廣告編號...
mysql先排序後判斷 mysql 排序後在查詢
今天寫sql 的時候,遇到乙個問題,有乙個圖書表和乙個章節表 book chapter 我需要隨機五本書,並且獲取這五本書的最新章節和標題 rank代表多少章 我的sql是 select t.from select b.c.rank,c.title from book b inner join ch...