mysql - 對于只有兩個字段(其中 一個為id)不重復的數(shù)據(jù)如何過濾
問題描述
如下有一個角色表,如何查詢名為‘jc’的所有角色(不分大小寫),并且取出等級最高的數(shù)據(jù)
問題解答
回答1:多虧了@GoldyMark的啟發(fā),使用max(level)可以解決該類問題
select role_id, role_name, role_job, create_time, MAX(`level`) FROM tb_role where role_name = ’jc’ GROUP BY role_id;回答2:
where中除了名字為jc,還需要等級為一個子查詢的結果,這個子查詢查詢出最高的等級
回答3:所以,你是想要所有role_name=’jc’的數(shù)據(jù)呢?還是所有role_name=’jc’ AND level = MAX(level)呢?假設你問的是后者,如下:
SELECT * FROM roles AS aWHERE a.role_name = ’jc’ --mysql默認不區(qū)分大小寫,除非字段顯式設定了AND a.level IN (SELECT max(b.level) FROM roles AS bWHERE b.role_name = ’jc’)
避免子查詢的方法就是先把子查詢的結果集查出來,然后在程序里把max(level)匹配進去原來的sql,這樣你只需要維護兩條簡單的sql,而不是一條復雜的sql(這里的復雜只是相對而言,實際應用中應該盡量避免書寫復雜的sql)。
相關文章:
1. mysql - 請問數(shù)據(jù)庫字段為年月日,傳進的參數(shù)為月,怎么查詢那個月所對應的數(shù)據(jù)2. javascript - 求幫助 , ATOM不顯示界面!!!!3. javascript - 我的站點貌似被別人克隆了, google 搜索特定文章,除了域名不一樣,其他的都一樣,如何解決?4. [python2]local variable referenced before assignment問題5. php - 微信開發(fā)驗證服務器有效性6. 求救一下,用新版的phpstudy,數(shù)據(jù)庫過段時間會消失是什么情況?7. javascript - [MUI 子webview定位]8. Python2中code.co_kwonlyargcount的等效寫法9. javascript - vue+iview upload傳參失敗 跨域問題后臺已經解決 仍然報403,這是怎么回事啊?10. html - 移動端radio無法選中
