84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
意思是指SELECT语句不加ORDER BY的情况下,是根据什么来排序的?多次查询此排序是否会变化?谢谢。
mysql沒有預設排序,不指定排序的話多次查詢傳回的資料順序是有可能不一樣的。 http://stackoverflow.com/ques...
PG也是沒有預設排序的, 不指定排序回傳順序不可靠我是官方wiki
這篇文章介紹了 PG、MySQL、Oracle 的漢字排序,可能有一定參考作用:http://mp.weixin.qq.com/s?__b...
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擴充舉例:
<?php header('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, )
mysql沒有預設排序,不指定排序的話多次查詢傳回的資料順序是有可能不一樣的。 http://stackoverflow.com/ques...
PG也是沒有預設排序的, 不指定排序回傳順序不可靠
我是官方wiki
這篇文章介紹了 PG、MySQL、Oracle 的漢字排序,可能有一定參考作用:http://mp.weixin.qq.com/s?__b...
MySQL建庫和建表時都可以用COLLATE關鍵字指定排序規則.
例如WordPress:
MySQL中排序規則utf8_general_ci不區分大小寫,ci為case insensitive的縮寫,即大小寫不敏感.
比如,主鍵內容為A,插入a將是不允許的,而查找a是可以查到A的.也就是說,A和a在字符判斷中被當做一樣來處理.
排序規則根據特定語言和區域設置的標準指定對字符串數據進行排序和比較的規則.
排序規則的概念,以PHP的intl擴充舉例: