久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

mysql - 對于只有兩個字段(其中 一個為id)不重復(fù)的數(shù)據(jù)如何過濾

瀏覽:145日期:2022-06-20 09:38:50

問題描述

如下有一個角色表,如何查詢名為‘jc’的所有角色(不分大小寫),并且取出等級最高的數(shù)據(jù)

mysql - 對于只有兩個字段(其中 一個為id)不重復(fù)的數(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,還需要等級為一個子查詢的結(jié)果,這個子查詢查詢出最高的等級

回答3:

所以,你是想要所有role_name=’jc’的數(shù)據(jù)呢?還是所有role_name=’jc’ AND level = MAX(level)呢?假設(shè)你問的是后者,如下:

SELECT * FROM roles AS aWHERE a.role_name = ’jc’ --mysql默認(rèn)不區(qū)分大小寫,除非字段顯式設(shè)定了AND a.level IN (SELECT max(b.level) FROM roles AS bWHERE b.role_name = ’jc’)

避免子查詢的方法就是先把子查詢的結(jié)果集查出來,然后在程序里把max(level)匹配進(jìn)去原來的sql,這樣你只需要維護(hù)兩條簡單的sql,而不是一條復(fù)雜的sql(這里的復(fù)雜只是相對而言,實(shí)際應(yīng)用中應(yīng)該盡量避免書寫復(fù)雜的sql)。

相關(guān)文章:
主站蜘蛛池模板: 综艺| 美姑县| 南康市| 郁南县| 石渠县| 通江县| 忻城县| 建湖县| 邯郸县| 安顺市| 正阳县| 汤原县| 宁远县| 明光市| 邻水| 陈巴尔虎旗| 新昌县| 麻栗坡县| 都昌县| 长白| 大宁县| 兰溪市| 诏安县| 汝南县| 天柱县| 博乐市| 海兴县| 汾阳市| 尚义县| 时尚| 西城区| 贡嘎县| 淳化县| 盐边县| 双牌县| 宕昌县| 鹤庆县| 大余县| 邛崃市| 霍城县| 金湖县|