數據庫 - PostgreSQL、MySQL、Oracle,查詢的默認排序是怎樣的?
問題描述
意思是指SELECT語句不加ORDER BY的情況下,是根據什么來排序的?多次查詢此排序是否會變化?謝謝。
問題解答
回答1:mysql沒有默認排序,不指定排序的話多次查詢返回的數據順序是有可能不一樣的。http://stackoverflow.com/ques...
回答2:PG也是沒有默認排序的, 不指定排序返回順序不可靠我是官方wiki
回答3:這篇文章介紹了 PG、MySQL、Oracle 的漢字排序,可能有一定參考作用: http://mp.weixin.qq.com/s?__b...
回答4:MySQL建庫和建表時都可以用COLLATE關鍵詞指定排序規則.比如WordPress:
數據庫:CREATE DATABASE IF NOT EXISTS `wordpress` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;評論表:CREATE TABLE IF NOT EXISTS `wp_comments` ( `comment_ID` bigint(20) unsigned NOT NULL, `comment_post_ID` bigint(20) unsigned NOT NULL DEFAULT ’0’, `comment_author` text COLLATE utf8mb4_unicode_ci NOT NULL, `comment_author_email` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ’’, `comment_author_url` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ’’, `comment_author_IP` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ’’, `comment_date` datetime NOT NULL DEFAULT ’0000-00-00 00:00:00’, `comment_date_gmt` datetime NOT NULL DEFAULT ’0000-00-00 00:00:00’, `comment_content` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, `comment_karma` int(11) NOT NULL DEFAULT ’0’, `comment_approved` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ’1’, `comment_agent` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ’’, `comment_type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ’’, `comment_parent` bigint(20) unsigned NOT NULL DEFAULT ’0’, `user_id` bigint(20) unsigned NOT NULL DEFAULT ’0’) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
MySQL中排序規則utf8_general_ci不區分大小寫,ci為case insensitive的縮寫,即大小寫不敏感.比如,主鍵內容為A,插入a將是不允許的,而查找a是可以查到A的.也就是說,A和a在字符判斷中被當做一樣來處理.排序規則根據特定語言和區域設置的標準指定對字符串數據進行排序和比較的規則.
排序規則的概念,以PHP的intl擴展舉例:
<?phpheader(’Content-Type: text/html; charset=utf-8’);$arr = array(’中國’,’華山’,’華夏’,’中華’,’重陽’,’重量’,’b’,’a’,2,1);collator_sort(collator_create(’zh_CN’), $arr);var_export($arr);//輸出(可見漢字按照拼音排序,但不能識別多音字'重'):array ( 0 => ’a’, 1 => ’b’, 2 => ’華山’, 3 => ’華夏’, 4 => ’中國’, 5 => ’中華’, 6 => ’重量’, 7 => ’重陽’, 8 => 1, 9 => 2,)
![css3 - [CSS] 動畫效果 3D翻轉bug](http://www.aoyou183.cn/attached/image/news/202304/110831f073.png)