1. 表欄位按照漢字拼音排序
命令:
若庫表為uft8字符集時,需轉換為gbk編碼再排序:【比較常見】
order by convert(columnname(排序的列名) using gbk) asc;
order by convert(columnname(排序的列名) using gbk) desc;
若庫表為gbk字符集時,直接排序:
order by columnname(排序的列名) asc;
order by columnname(排序的列名) desc;
複製程式碼
舉例:
對資料庫user表的name欄位按照漢字拼音排序,user表資料如下:

檢視user表的DDL:user表採用utf8字符集,中文不能按照拼音排序,需轉換為gbk編碼,再進行排序

對user表的name欄位進行gbk編碼再排序:【升序的話,英文排在中文前面的;反之降序排在後面】


2. 查詢表中重複記錄/查詢表中某欄位值存在重複值
一般不存在表中有完全重複的記錄,因為我們在設計資料庫表時,都有主鍵(id),不可重複,所以常見情況都是表中某欄位值存在重複。
<1> 查詢某一欄位存在重複值的命令:
select columnname(欄位名), count(*) as count from tablename(資料庫表名) group by columnname(欄位名) having count > 1;
命令擴充套件:
select columnname(欄位名), count(columnname(欄位名)) as count from tablename(資料庫表名) group by columnname(欄位名) having count > 1 order by count desc;
複製程式碼
舉例:


<2> 查詢多個欄位同時存在重複值的命令:
select columnname1(欄位名1), columnname2(欄位名2), count(*) as count from tablename(資料庫表名) group by columnname1(欄位名1), columnname2(欄位名2) having count > 1;
複製程式碼
舉例:

<3> 查詢某一欄位存在重複值的具體行記錄資訊:
方式一:使用in + 子查詢 【資料量大時,耗時長,效率低】
舉例:先用子查詢查出user表中name欄位的重複值,然後在user全表中做in匹配。

方式二:使用臨時表做關聯查詢 【建立臨時表,耗時短,效率高,推薦】
舉例:把user表中重複的name欄位值存放臨時表usertemp中,使用關聯查詢,查出重複name欄位的具體行記錄資訊。

<4> 查詢多個欄位同時存在重複值的具體行記錄資訊:
舉例:

3. 去除表中重複記錄
表中重複記錄: 指的是表中完全重複的記錄,即所有欄位值均重複。
一般我們在設計資料庫表時,都有主鍵id,不可重複,所以一般不存在表中記錄完全重複的情況;若出現了此情況,建議先從表結構設計上查詢問題,增加主鍵,優化表結構。
查詢表中完全重複的記錄命令:【不常用】
select distinct * from tablename(資料庫表名);
複製程式碼
後續持續更新中...