mysql資料去重和排序
mysql中的字母預設不區分大小寫。
比如:
mysql> select * from (select 'a' col1 union select 'A' union select 'B' union s
elect 'b') a order by col1 ;
+------+
| col1 |
+------+
| a |
| B |
+------+
2 rows in set (0.00 sec)
使用union進行去重操作,A和a看成相同資料,order by時按照字典順序進行排序。
mysql> select * from (select 'a' col1 union all select 'A' union all select 'B'
union all select 'b') a order by col1 ;
+------+
| col1 |
+------+
| a |
| A |
| B |
| b |
+------+
4 rows in set (0.00 sec)
可以通過binary關鍵字指定其按照二進位制順序排序:
mysql> select * from (select 'a' col1 union select 'A' union select 'B' union s
elect 'b') a order by binary col1 ;
+------+
| col1 |
+------+
| B |
| a |
+------+
2 rows in set (0.05 sec)
mysql> select * from (select 'a' col1 union all select 'A' union all select 'B'
union all select 'b') a order by binary col1 ;
+------+
| col1 |
+------+
| A |
| B |
| a |
| b |
+------+
4 rows in set (0.00 sec)
如果實際的資料是
A
a
a
B
b
想要得到結果
A
a
B
b
語句為:
SELECT DISTINCT col1,ASCII(col1) desc_1,ASCII(UPPER(col1)) desc_2 FROM
(SELECT 'a' as col1
union ALL
SELECT 'A' as col1
union ALL
SELECT 'a' as col1
union ALL
SELECT 'b' as col1
union ALL
SELECT 'B' as col1) a
ORDER BY desc_2,desc_1
以上是通過語句進行限制的,如果經常進行類似的查詢(區分大小寫),需要在建表時指定欄位屬性,如:
mysql> CREATE TABLE T( A VARCHAR(10) BINARY );
Query OK, 0 rows affected (0.36 sec)
mysql> insert into t values ('A');insert into t values ('a');insert into t values ('a');insert into t values ('B');insert into t values ('b');
Query OK, 1 row affected (0.11 sec)
Query OK, 1 row affected (0.15 sec)
Query OK, 1 row affected (0.17 sec)
Query OK, 1 row affected (0.04 sec)
Query OK, 1 row affected (0.04 sec)
mysql> select distinct a from t;
+------+
| a |
+------+
| A |
| a |
| B |
| b |
+------+
4 rows in set (0.00 sec)
mysql> select distinct a from t order by a;
+------+
| a |
+------+
| A |
| B |
| a |
| b |
+------+
4 rows in set (0.00 sec)
mysql> select distinct a from t order by binary a;
+------+
| a |
+------+
| A |
| B |
| a |
| b |
+------+
4 rows in set (0.00 sec)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26451536/viewspace-1815030/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL資料庫行去重複和列去重複MySql資料庫
- MySQL去重資料MySql
- 陣列的去重和排序陣列排序
- MySQL 去重SQLMySql
- C#資料去重C#
- 利用rownum分組排序去重排序
- JavaScript 字串與陣列互轉,並保持資料去重、排序功能JavaScript字串陣列排序
- Mysql查詢去重MySql
- Java List集合去重、過濾、分組、獲取資料、求最值、合併、排序、跳資料和遍歷Java排序
- java TreeSet去重與排序入門Java排序
- C# datatable中重複資料去重C#
- MySQL-排序資料MySql排序
- 大資料去重(data deduplication)方案大資料
- map/reduce實現資料去重
- 陣列物件的去重然後排序陣列物件排序
- Oracle:重複資料去重,只取最新的一條資料Oracle
- mysql資料庫姓名排序MySql資料庫排序
- 列組合資料去重複值
- mysql查詢去重方法解析MySql
- mysql查詢表裡的重複資料方法和刪除重複資料MySql
- oracle下資料的排序分組row_number() over()--分析函式,可用於去重Oracle排序函式
- 大檔案的排序和去重 超級簡單的實現排序
- 資料校驗---記一次讀取json配置資料,資料去重,去空JSON
- 重學資料結構和演算法(四)之氣泡排序、插入排序、選擇排序資料結構演算法排序
- mysql 清除重複資料MySql
- 陣列去重和求和陣列
- JS單行、多行文字字元去重和行去重JS字元
- 去model化和資料物件物件
- mysql避免插入重複資料MySql
- MySQL 處理重複資料MySql
- MySQL刪除重複資料MySql
- ClickHouse 實時資料去重final+group by
- KaiwuDB 時序引擎資料去重功能詳解AI
- MapReduce應用案例--簡單的資料去重
- MapReduce程式設計例項之資料去重程式設計
- 6個備份資料的去重加密工具加密
- 去“5”排序排序
- Python 字串,list排序,刪除重複資料Python字串排序