
order by大到小 在 コバにゃんチャンネル Youtube 的最佳貼文

Search
head(sort(islands,decreasing = T)) ##由大到小排序後的前六筆資料 ... 如需對資料框做排序,可使用 order() 函數, order() 函數可回傳由小到大之元素位置,以 ... ... <看更多>
#1. [新手30天學SQL]第十七日-大到小小到大的資料排序
ORDER BY 是排序語法,一般會寫在句尾,也就是當我們跟資料庫說「撈出性別是男生的資料」,資料庫就會去撈,撈完以後,我們再說「照座號排序」。也就是:先撈資料再排序 ...
#2. SQL ORDER BY 排序- SQL 語法教學Tutorial - Fooish 程式技術
我們可以將SELECT 取得的資料集依某欄位來作排序,而排序分別可以由小至大(ascending; 預設),或由大至小(descending)。 ORDER BY 語法(SQL ORDER BY ...
#3. SQL ORDER BY - 1Keydata SQL 語法教學
這可能是由小往大(ascending) 或是由大往小(descending)。在這種情況下,我們就可以運用ORDER BY 這個指令來達到我們的目的。 ORDER BY 的語法如下: SELECT "欄位名"
#4. sql的SELECT語法,大到小(DESC),小到大(ASC ... - Xuite
小到大 $data = mysql_query("SELECT * FROM DBNAME ORDER BY name ASC"). //大到小 $data = mysql_query("SELECT * FROM DBNAME ORDER BY name DESC").
#5. ORDER BY 子句- Microsoft 支援服務
選取準則。 如果陳述式包含WHERE 子句,則Microsoft Access 資料庫引擎會在將WHERE 條件套用到記錄後,對值進行排序。
在ORDER BY 短句中,一個<算式> 可以是在<字段列表> 中出現過的字段名稱或是同址別名。 關鍵字ASC 表示結果是跟據指定算式由小至大排列;另一方面,關鍵字DESC 表示結果 ...
ORDER BY 不只能針對欄位去做升降冪排序,本文透過一些運算式判斷優先序,進而達成自訂規則排序的需求。
#8. [MS-SQL]排序查詢ORDER BY、指定查詢資料列數目TOP
我們可以在下SELECT 語法時,加入ORDER BY 來依某欄位做排序,而排序可以由小至大(ASC;ascending; 預設)、或由大至小(DESC;descending)。
#9. ORDER BY子句 - Oracle SQL學習筆記本
何謂ORDER BY ... 使用ORDER BY子句,可以方便排序查詢資料,你可以設定查詢資料需要大到小或是小到大, ... ORDER BY {expr | position | alias} [ASC | DESC].
#10. sql order by,desc和limit使用(mysql) - 51CTO博客
sql order by,desc和limit使用(mysql),(。ŏ_ŏ)首先我们来看一个表:在此我们要进行排序,按降序排序,就是从大到小。然后我们只要查询前2条数据。
#11. sql从大到小排序 - CSDN博客
select * from 表名order by 列desc.
#12. SQLite Order By | 菜鸟教程
ASC 默认值,从小到大,升序排列; DESC 从大到小,降序排列. 您可以在ORDER BY 子句中使用多个列,确保您使用的排序列 ...
#13. ORDER BY的用法都有哪些- 数据库- 亿速云 - haijaantasoite.fi
按照uid逆序查询数据,也就是按照uid从大到小排列. 我们来看. SELECT * FROM mysql_order_by Mar 23, 2019 数据库中常用order by关键字对结果集进行排序,又可使用desc ...
#14. [Oracle DB]Oracle SQL order by 排序資料ASC及DESC用法教學
依DEPARTMENT_ID排序,由小到大。 SELECT FIRST_NAME, JOB_ID, SALARY, DEPARTMENT_ID FROM EMPLOYEES ORDER BY 4;. 測試:.
#15. SQL ORDER BY 排序| Hive SQL 教程- 盖若
默认按升序排序(ASC,可以不写); 降序使用DESC. 升降序:. 用DESC 表示按倒序排序(即:从大到小排序); 用ACS 表示 ...
#16. SQLite Order By - 简单教程
SQLite 的**ORDER BY** 子句可以对一个或多个列按升序或降序顺序排列数据## ORDER BY 子句- 简单教程,简单编程. ... ASC 表示升序(有小到达) DESC 表示降序(由大到小).
#17. 4)Mysql基础学习 - 知乎专栏
接着上文学习排序,限制order by 排序order by 字段名排序方式升序asc 数字从小到大(默认升序)降序desc 数字从大到小使用order by 可以对数据进行 ...
#18. sql order by,desc和limit使用(mysql) - 华为云社区
ŏ_ŏ) 首先我们来看一个表: 在此我们要进行排序,按降序排序,就是从大到小。然后我们只要查询前2条数据。 意思就是我们需要把这个表...
#19. 使用SQL Order By 升序排列 - freeCodeCamp
你可以看到 names 现在按字母顺序排序,并且 id 不再按正确的升序排列。 如果我们想按 city 对数据进行排序,那么我们可以使用这种语法。 SELECT * ...
#20. SQL语句中排序子句ORDER BY的使用方法 - 翔宇亭IT乐园
(1)查询全部学生信息,结果按年龄从大到小进行排序(降序). 查询语句为:. SELECT * FROM student ORDER BY sage DESC. (2)查询女学生的学号、 ...
#21. sql order by,desc和limit使用(mysql) - 腾讯云开发者社区
在此我们要进行排序,按降序排序,就是从大到小。然后我们只要查询前2条数据。 意思就是我们需要把这个表从大到小排序后,取前两条,那么我们就需要 ...
#22. SQL语句从小到大或者从大到小排序 - 简书
select client,ID,taskdate from 表名order BY client asc,taskdate,ID desc(如果让client为降序的话or...
#23. SQL Server 的ORDER BY 兩三事| 小朱® 的技術隨手寫 - - 點部落
另一個情況是先拿回到用戶端再於用戶端排序,講真的,會做這種建議的不是不懂DB / SQL 就是太相信網路傳輸速度,或許在應用程式與資料庫都在同一台的情況 ...
#24. sql从ID大到小排列.. - 百度知道
aspsqlsql="select*fromdownwherehidden=trueorderbyid"sql从ID大到小排列..怎么做... asp sql sql="select * from down where hidden=true order by id"
#25. QUERY 函式大解析(三):ORDER BY、LIMIT、OFFSET
我們在最近的系列文介紹了QUERY 函式的用法,有SELECT、WHERE 就可以應付不少的搜尋狀況。今天再介紹四個小功能:ORDER BY、LIMIT、OFFSET 和LABEL 給 ...
#26. 使用SQL的ORDER BY子句 - 阶梯编程训练营
进行DESC(降序)排序时,记录按照字段的值从大到小进行排序;若字段的值是字符串时,排序会按照字典顺序进行。 例1:查询mooc数据库的course表,查询返回的结果集按照价格 ...
#27. 第六十三章SQL命令ORDER BY(一) - 稀土掘金
SELECT TOP 5 Name,Age FROM MyTable ORDER BY Age DESC 返回 MyTable 中年龄最大的5行数据,按从老到小的顺序排列。 在 SELECT 列表中执行窗口函数(包括 ...
#28. SQL 的查詢語言
Order By 欄位1, 欄位2, …, 欄位n [Asc|Desc]. 它是依照某一個欄位來進行排序。 例如:(1) ORDER BY 成績Asc ←可以省略(由小至大). (2) ORDER BY成績Desc ←不可以 ...
#29. 從SQL 到Pandas — Order/ Limit - Nancy SW - Medium
如果要倒過來由大到小排序的話,SQL 只要把ASC 改成DESC 即可: SELECT * FROM customer. ORDER BY Age DESC # 照年齡由大到小排序. 在Pandas 則需要加上一段參數:
#30. ORDER BY | ClickHouse Docs
换句话说,对于升序排序,它们被放置为好像它们比所有其他数字大,而对于降序排序,它们被放置为好像它们比其他数字小。 排序规则支持. 对于按字符串值排序,可以指定排序 ...
#31. 第9章SQL基本查詢指令 - ASP.NET 2.0網頁設計範例教本
▫ 如果查詢結果的排序順序是倒過來由大到小,只. 需在ORDER BY子句的最後加上DESC指令。 SQL查詢範例:Ch9_6_02.sql. ▫ 在Courses資料表查詢學分數credits大於等於3的課.
#32. ascending order-翻译为中文-例句英语 - Reverso Context
在这个游戏里,您的目标是根据圆球上的数字,以由小至大的次序点击它们。 A series of statements or ideas in an ascending order of rhetorical force or intensity.
#33. MySQL:SQL語法 - Aaron網誌
ORDER BY 指令可以設定將選出的資料由小到大(ascending) 或是由大到小(descending)來排列順序。 SELECT `欄位` FROM `表格名` [WHERE '條件'] ORDER BY `欄位一` [ASC, DESC] ...
#34. 第三章SQL查詢指令
四、 ORDER BY 排序子句. (1)由小到大排序. 上述SELECT 指令的條件可以找到7筆符合條件的記錄,而且是使用學分. 欄位由小到大進行排序,如下圖所示:.
#35. 18-3 使用SQL 來檢視資料
SQL指令:SELECT * FROM Player ORDER BY TeamID, Percentage DESC 意義:每一隊的球員命中率排行榜 說明:列出結果會先按TeamID 由小到大排序,再按Percentage 由大到 ...
#36. SQL msSQL 序列函數ROW_NUMBER() OVER()製作分頁
SELECT * 從( SELECT (分割/新建欄位() OVER( ORDER BY (依據id 當id是'1'回傳0其餘回傳1) 由大到小, id 由大到小// *這邊看) AS row_id, * FROM \[admin_basic] ) AS ...
#37. Sql 排序 - ㄅㄧㄥ
语法以下是SQL SELECT 语句使用ORDER BY 子句将查询数据排序后再返回数据: ... 某欄位來作排序,而排序分別可以由小至大(ascending; 預設),或由大至小(descending)。
#38. 你有没有在MySQL的order by上栽过跟头
陷入了沉思的小猿心想:这个锅看来是背定了,10w数据是有点大了,还有这个using filesort 到底是怎么个排序原理? 解剖文件排序. 有人可能说上面的问题是 ...
#39. 除了会排序,你对ORDER BY的用法可能一无所知!(二)
小伙伴们在进行SQL排序时,都能很自然的使用到ORDER BY。不管是默认ASC的升序,还是DESC降序,几乎都是信手拈来。 今天给大家分享一些你可能不知道 ...
#40. MariaDB Order By子句 - 易百教程
在MariaDB数据库中, ORDER BY 子句用于按升序或降序对结果集中的记录进行排序。 ... 在上面结果集中,可以看到是按 student_id 字段从大到小(指定 DESC )来排序的。
#41. JavaScript sort() 陣列元素及Object 順序重新排序
JavaScript 陣列元素順序重新排序sort 及Object 排序. ... 陣列排序函數sort() 方法,預設為ASCII 字符順序進行「升序排列」。 ... Year 由大到小)。
#42. 在視覺效果中對資料進行排序 - Tableau Help
套用到: Tableau Cloud, Tableau Desktop, Tableau Server ... Advertising cookies track activity across websites in order to understand a viewer's interests, ...
#43. [Oracle DB]Oracle SQL order by 排序資料ASC及DESC用法教學
order by 欄位位置ASC/DESC; 依DEPARTMENT_ID排序,由小到大。 SELECT FIRST_NAME, JOB_ID, SALARY, DEPARTMENT_ID FROM EMPLOYEES ORDER BY 4;
#44. 面试官:order by 是怎样排序的?怎么优化? - InfoQ 写作平台
而order by 中,是按age 从小到大排序,如果age 相同,再按name 从大到小排序。也就是说,索引存储顺序与order by 不一致。 我们怎么优化呢?如果MySQL 是 ...
#45. 看一遍就理解:order by详解 - TeqNG
我们现在有这么一个需求:查询前10个,来自深圳员工的姓名、年龄、城市,并且按照年龄小到大排序。对应的SQL 语句就可以这么写:
#46. [數據分析#28] 最白話的SQL 語法教學攻略:10 個我最常用的
ORDER BY :將輸出的資料進行排序,ASC 為由小到大排序,DESC 為由大到小排序. SELECT 日期, 類型, SUM(金額) --計算FROM 收支統計WHERE 類型= '支出' GROUP BY 日期, ...
#47. 排序(Sorting)
排序(sorting),將一組資料一使用者需求,予以重新排列其順序。一般會依資料之大小順序排序(由大至小、或由小至大)。排序後之資料,優點為容易閱讀、統計分析、與快速 ...
#48. 資料庫管理系統
到大或由大到小進行排序。 ➢ 由小到大排序:在SQL指令的WHERE子句或GROUP. BY之後加上ORDER BY ...
#49. 【Google 試算表】用SORT 函數來排序,單欄多欄都OK
如果要用SORT 函數進行「多欄排列」的話,可以在上面三個引數都填完之後,繼續再填入「排序欄」及「遞增遞減」的引數,來新增「次要的欄位排列」。 訂閱《數位小幫手電子報》 ...
#50. mysql 从大到小排序mysql按照id大小排序 - 银狐笔记
mysql 从大到小排序 mysql按照id大小排序。 ... 实现,那么id越大发帖的时间就越新,所以我们可以通过id从小到大排序的,从大到小排序(order by)。
#51. [Pandas教學]輕鬆入門3個常見的Pandas套件排序資料方式
這時候,如果想要針對讀者評價(User Rating)來進行由小到大的升冪排序,就可以呼叫Pandas套件的sort_values()方法(Method),並且透過by關鍵字參數,指定所要排序的欄位 ...
#52. Python List 的sort 與sorted 排序用法教學與範例 - Office 指南
在Python 中若要對list 中的元素進行排序,有兩種方式,一種是使用 sorted ,他會對元素 ... 如果要進行反向排序(數字由大到小),可以加上 reverse = True 參數:
#53. [MySQL / MariaDB] 取得每個group的前N筆資料
ORDER BY currency, amount DESC ... 表根據幣別 currency 以及交易金額 amount 進行排序,其中 amount 是descending order由大排到小,如下。
#54. SQL Order By 排序的那些事儿 - 墨天轮
Order By 其语法结构如下:Select 字段名From 数据来源Where 条件[Order B. ... SQL的运算顺序,既不是语句的先后顺序,也不是由内到外的顺序.
#55. SQL ORDER BY 按一個或多個列排序
子句的例子有我們在SQL SELECT 語句的用法 看到的 SELECT 語句的 FROM 子句。 為了明確地排序用 SELECT 語句檢索出的資料,可使用SQL ORDER BY 子句。 ORDER BY ...
#56. 資料庫應用- DataBase System Application
ORDER BY 姓名拼音ASC. 由小到大排序,昇冪排序. ORDER BY 姓名拼音. 同上,ASC可省略. ORDER BY 姓名拼音DESC. 由大到小排序,降冪排序.
#57. SQL 教學講義
(3) ORDER BY 是預設由小到大排序;加上. ASC/DESC,分別是遞增/遞減。 ◎EX4: 想知道HumanResources.Employee 裡的員工有哪些職稱。 <ANS4>:比較下列兩種寫法.
#58. MySQL排序和处理函数 - 小猴子monkey1024的Java教程
如果存在where子句,那么order by必须放到where语句后面。 单个字段排序按照薪水由小到大排序: select ename,sal from emp order by sal;.
#59. [PHP] 陣列排序sort, ksort, asort, usort... @新精讚
五、排序值小到大但要保留鍵asort. asort($solar);. 結果. Array ( [p3] => earth [p5] => jupiter
#60. MySQL排序名次、排行(使用SQL語法排序) - 史丹利愛碎念
SELECT * FROM value_range ORDER BY price DESC. -- 註:DESC 代表該欄位數字由大至小排序;ASC 則是由小到大做排序.
#61. 6 資料處理與清洗| 資料科學與R語言 - Yi-Ju Tseng
head(sort(islands,decreasing = T)) ##由大到小排序後的前六筆資料 ... 如需對資料框做排序,可使用 order() 函數, order() 函數可回傳由小到大之元素位置,以 ...
#62. 你真的瞭解MySQL的order by嗎- tw511教學網
陷入了沉思的小猿心想:這個鍋看來是背定了,10w資料是有點大了,還有這個using filesort 到底是怎麼個排序原理? 解剖檔案排序. 有人可能說上面的問題是 ...
#63. SELECT 基礎查詢· MYSQL Tutorial - Wander
如果你希望在查詢城市資料的時候,資料庫會依照國家代碼幫你排序的話: 你也可以指定資料排列的順序為由大到小: 「ORDER BY」子句後面可以依照需求指定多個排序的資料:.
#64. 小胖带你学SQL(三)聚合与排序 - 一起大数据
只有SELECT子句和HAVING子句(以及ORDER BY子句)中能够使用聚合函数。 ... 以上结果乍一看,貌似是按照商品编号从小到大的顺序(升序)排列的。
#65. SQL 的排序ORDER BY - 每日頭條
老師們是經常遇到的,那韓老師今天就講講如何來解決,算是韓老師送個天下教師同仁的一份小小禮物吧。如果order為0):公式解析:公式的含義:如果B2=0, ...
#66. SQL正負數排序問題(腦殘文) - Lawrence's Blog
下面這段語法是我一開始愚蠢的想法,當然order by 排序當然不允許這樣寫,況且想辦法用正負數符號加工出來的語法在效能上一定很差。
#67. 请问proc sort怎么让数据从大到小排列- SAS专版 - 经管之家
请问proc sort怎么让数据从大到小排列,请问proc sort怎么让数据从大到小排列,经管之家(原人大经济论坛)
#68. SQL 排序,將文字當作數字排序 - 程式交易者的獨白
客戶需求,需要把是Varchar格式的欄位用數字由小到大排序例如資料為: ... select mumber from table order by cast(mumber as integer).
#69. 遇到Nulls 時的排序方式 - 程湘之間
SQL Server 版. SQL Server 總認為null 值是比較小的值。當order by 的欄位中有null 時,null 的資料會先 ...
#70. 限制SQL 的資料查詢筆數
ROWNUM 會比 ORDER BY , GROUP BY 還要早執行,所以如果有使用這兩個子句 ... 但若要在SQL Server 中取出第x 筆到第y 筆資料,方法就有非常多種:.
#71. MySQL Order By用法分享_PHP教程 - IDC笔记
ORDER BY uid ASC按照uid正序查询数据,也就是按照uid从小到大排列ORDER BY uid DESC按照uid逆序查询数据,也就是按照uid从大到小排列我们来看SELECT * FROM ...
#72. 16 “order by”是怎么工作的?.md - 技术文章摘抄
如果MySQL 认为内存足够大,会优先选择全字段排序,把需要的字段都放到sort_buffer 中,这样排序后就会直接从内存里面返回查询结果了,不用再回到原表去取数据。 这也就 ...
#73. SQL-基礎SELECT - 阿泰的程式語言筆記
日期型2: WHERE aDATE BETWEEN '2010-01-01' AND '2017-01-31' (效果一樣). 排序 order by. 用來排序搜尋結果. DESC:由大到小(Z~A 9~1).
#74. SQL小技巧,用多個條件進行排序 - 壹讀
之前在學習和實踐中,我們用order by 語句基本是指用一個條件進行判斷, ... 我翻了MYSQL的文檔,查到order by 語句還可以對多個欄位使用,於是我用了 ...
#75. 16 | “order by”是怎么工作的? - 极客时间
在你开发应用的时候,一定会经常碰到需要根据指定的字段排序来显示结果的需求 ... 关于大数据量排序并limit的时候offset很大,即使order by的字段上有 ...
#76. 請問經sql排序後,如何抓到某一筆(王大3)的上下筆資料 - 藍色小舖
請問經sql排序後,如何抓到某一筆(王大3)的上(王大4)下筆(王大6)資料 經下列sql排序後 sql = "select * from play where season1001 ='102年度' order ...
#77. 四面阿里被问MySQL底层如何实现order by的,瞬间懵了! - 伙伴云
若待排序数据量太大,内存放不下,则需利用磁盘临时文件辅助排序。 产品又开始炫技了,又问到:. order by语句何时会使用临时文件? SET optimizer_trace='enabled=on ...
#78. [SQL] 查詢語法基本介紹Part 1
ORDER BY 排序. 排序查詢的資料,指令預設是由小到大排序,若要反向排序(大到小),則需要 ...
#79. order by asc 和desc 响应时差不一- 性能调优 - AskTUG
【TiDB 版本】:master 【问题描述】: 对主键order by asc, ... 8 order by id desc; 用DESC 表示按倒序排序(即:从大到小排序) — 降序排列.
#80. [PHP/MySQL] ORDER BY 與LIMIT 用法 - Coding-Daily
... 欄位,並將account欄位的結果從大到小排列,結果為從"第0+1筆"資料開始的1筆 *ASC (結果由小到大排列,預設值) *DESC(結果由大到小排列) *LIMIT 0 ...
#81. [SQL ] select排序過的子表格結果不同? - 看板Database
... b1欄位就變成由大到小的逆向排序G,F,B,A 到此為止兩邊會是一樣的但是如果 ... 不同的結果select * from (select * from b order by b1 desc)tb1; ...
#82. EndNote Output Style修改 Citations、Bibliography的Sort Order
數字型欄位(如:年代Year、作者數量# of Authors)按數字大小,由小排到大。 多欄位時依先後順序排序,如Author + Year + Title,先按Author字順排序、 ...
#83. 最常用的資料整理法:3大Excel排序功能,輕鬆把資料分門別類!
Z→A的意思是「由大到小」「由筆畫多到筆畫少」排列,如果你想要倒過來變成「由小到大」,就選擇A→Z即可。 【Level 2】多個欄位排序:在黃金銷售地區裡,看出業務員的業績 ...
#84. SQL 語法SELECT Last Row (Column) - Benjr.tw
ORDER BY 預設使用ASC (Ascending) 從小到大,也可以設定從大到小DESC (Descending). LIMIT 可以限制查詢回應的行數,使用方式有兩種N (只需要前面N 行 ...
#85. outputfield排序 - XQ全球贏家
可以看到在outputfield 後方多下一個函數設定order := 1 ,所選出的選股結果,就會依照每股稅後淨利的數值,由大至小的做排序的動作。
#86. Array.prototype.sort() - JavaScript - MDN Web Docs - Mozilla
如果没有指明 compareFn ,那么元素会按照转换为的字符串的诸个字符的Unicode 位点进行排序。例如"Banana" 会被排列到"cherry" 之前。当数字按由小到大 ...
#87. 你訂Nidin!最棒的線上訂餐系統
你訂!線上點餐好幫手,訂飲料、訂下午茶、訂早餐輕鬆搞定,外送條件系統預先檢查,刷卡、付現由你決定,點數、優惠皆能累計。辦公室訂餐只要分享網址揪團, ...
#88. 環球影城快速通關秘訣?3 分鐘看懂怎麼搭配最好玩- Roo.Cash
當你打開社群平台,看著朋友們在人潮擁擠的大阪環球影城,大排長龍的隊伍, ... 通關券4 – Fun Ride,搭配設施較為合適,不會過度刺激驚嚇到小孩子。
#89. 如何取出每天最接近04:00的数据| MySQL - LearnKu
用created_at 减去对应日期4 点的差值取绝对值之后,然后按绝对值小到大排序,这个 ... ORDER BY math_sub ASC) AS b GROUP BY b.days; 加查询条件后查出来都是00:00的 ...
#90. 台灣すき家官方網站
TOP. SUKIYA關於すき家 · GYU-DON什麽是牛丼 · ORDER BY PHONE預定便當. 首頁 · 公司資料 · 個資保護聲明 · 網站導覽. © SUKIYA Co.,Ltd. All Rights Reserved. ZENSHO.
#91. IKEA宜家家居線上購物-給你更多居家佈置靈感
IKEA 提供沙發,床墊,桌椅,衣櫃,廚具,燈具,收納系統櫃等超過8500項家具家飾,讓你線上立即買,並提供本島運送及超商取貨的服務。還能享有卡友優惠每月商品折扣, ...
#92. 討論日版2023情人節劇情討論串- Fate/Grand Order - 哈啦區
瓊安小姐與未確認之愛摧毀吧☆LoveLove Heart大石像受召喚來到迦勒底的瓊安正在四處散播祝福,此時特異點發生,御主和靈子轉移適性高的瓊安、瑪修、 ...
#93. 山屋及營地申請 - 天池山莊
住宿日(含)前第5日至29日之期間,系統每日下午3時,將針對空餘床位進行抽籤。 5. 申請住宿前請詳閱住宿申請須知及收費基準。
#94. 一顆種子發芽了! - Yo! Baby Shop
看似簡單的故事,卻蘊含寓意,成長過程中總會遇到或大或小、不得不改變的情況,學習面對才能成長·作者用幽默童趣的方式呈現,提醒讀者以樂觀勇敢的心情適應新環境, ...
#95. 错峰出游丨走,『去有风的地方』,来一场心灵治愈的旅行!
搬一张藤椅,煮一壶清茶,晒着冬末春初的暖阳,短暂地逃离都市生活,感受贴近自然和生活的小确幸。 张家界华天大酒店.png. 去有水的地方. 宁乡 ...
order by大到小 在 [SQL ] select排序過的子表格結果不同? - 看板Database 的推薦與評價
資料庫名稱:MariaDB , MySQL
資料庫版本:10.1.13-MariaDB , 5.0.51b-community-nt-log
內容/問題描述:
雖然標題是:
[SQL ] select排序過的子表格 結果不同?
可是剩下的字數不夠我打出完整的意思,所以被簡化成那樣
完整的標題,我會想這樣打:
同樣的資料跟同樣的語法下
MariaDB 和 MySQL,去 select 一個已經排序過的子表格
產生出來的資料結果是不同的?
以下文章
是先打好在自己個人版上,然後再複製過來的
今天意外發現 MariaDB 跟以往我用的 MySQL 有不同的地方
來個文章記錄一下吧
MariaDB 和 MySQL,兩者之間的關聯性
把這兩個資料庫的名字丟去 Google 查
大概可以知道的就是創辦人是一樣的
然後 MySQL 被 Sun 買下來了,所以新推出 MariaDB
MariaDB 號稱可以完全相容於 MySQL
以上是我網路上查到的文章
在沒有得到反駁方的相關文章之前
就先以這些文章都是正確的前提下,來探討這兩個資料庫
而既然兩者是該完全相容的
所以如果出現相同的情況下卻有不同的處理方法
那我覺得是大事
因為這表示要是哪天要從 MySQL 換成 MariaDB
本來以為可以無痛升級
卻出現了沒想到的 Bug ?
首先來建立一個表格,然後放一些測試用的假資料進去
兩個資料庫都做這個動作
create table b (
`b1` char(1) ,
`b2` char(2) ,
`b3` char(3)
);
insert into b (b1,b2,b3) values
('B','B4','/14'),
('F','B3','/05'),
('G','B5','/10'),
('A','B5','/11');
有了這表格後,接著把資料用最基本的語法叫出來
select * from b;
+------+------+------+
| b1 | b2 | b3 |
+------+------+------+
| B | B4 | /14 |
| F | B3 | /05 |
| G | B5 | /10 |
| A | B5 | /11 |
+------+------+------+
b1欄位可以看到 B,F,G,A 是在新增資料進去時的原始排序
如果抓資料出來時對 b1 欄位做排序
select * from b order by b1 desc ;
+------+------+------+
| b1 | b2 | b3 |
+------+------+------+
| G | B5 | /10 |
| F | B3 | /05 |
| B | B4 | /14 |
| A | B5 | /11 |
+------+------+------+
b1欄位就變成由大到小的逆向排序 G,F,B,A
到此為止兩邊會是一樣的
但是如果把這個抓出來的資料當成子表格
再度 select 一次
MariaDB 和 MySQL 就會產生不同的結果
select * from (select * from b order by b1 desc)tb1;
+------+------+------+ +------+------+------+
| b1 | b2 | b3 | | b1 | b2 | b3 |
+------+------+------+ +------+------+------+
| B | B4 | /14 | | G | B5 | /10 |
| F | B3 | /05 | | F | B3 | /05 |
| G | B5 | /10 | | B | B4 | /14 |
| A | B5 | /11 | | A | B5 | /11 |
+------+------+------+ +------+------+------+
資料庫的版本是
show variables like 'version';
+-----------------+ +--------------------------+
| Value | | Value |
+-----------------+ +--------------------------+
| 10.1.13-MariaDB | | 5.0.51b-community-nt-log |
+-----------------+ +--------------------------+
沒事當成子表格多 select 一次幹什麼?
當然是有理由的
起因是因為 PTT 的一篇文章
看板 Database
┌─────────────────────────────────────┐
│ 文章代碼(AID): #1O0O6zTK (Database) [ptt.cc] [SQL ] 兩張同性質Table找出 │
│ 文章網址: https://www.ptt.cc/bbs/Database/M.1476493757.A.754.html │
│ 這一篇文章值 132 Ptt幣 │
└─────────────────────────────────────┘
6675 10/15 s1237890210 □ [SQL ] 兩張同性質Table找出相同資料較新的一筆
內文如下:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
內容/問題描述:
Lot在不同廠區作業,希望能列出每一筆Lot的最新一筆停留站點,
不一定每筆Lot都會同時存在兩張Table內,
目前的作法是先Union All後用時間排序,用迴圈跑取不重複的資料出來,
應該要有辦法直接Select出來,請賜教了<(_ _)>
Table A Table B
------------------------------- ------------------------------
LotID LastStep LastStepTime LotID LastStep LastStepTime
A Astep3 2016/10/15 B Bstep4 2016/10/14
B Astep3 2016/10/13 F Bstep3 2016/10/05
C Astep1 2016/10/14 G Bstep5 2016/10/10
D Astep2 2016/10/13 A Bstep5 2016/10/11
------------------------------- ------------------------------
希望得到的查詢結果:
LotID LastStep LastStepTime
-------------------------------
A Astep3 2016/10/15
B Bstep4 2016/10/14
C Astep1 2016/10/14
D Astep2 2016/10/13
F Bstep3 2016/10/05
G Bstep5 2016/10/10
-------------------------------
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
內文結束
想說來試著解題看看
如果不要抓資料回去再用 php 或是 asp.net 或是 其他任何的主機端的語言來處理
要直接用一個 SQL 語法找出所需的資料的話
把抓到的資料當成子表格處理三次可以得到解
雖然不知道是不是個好方法,但是目前我想到可以這樣做
但是實際在操作一次驗證可不可行時
在我電腦上的 MariaDB 一直無法測試成功
無法取出最大值讓我覺得很奇怪,卻又抓不不出 Bug
後來換了別台電腦後就成功了
使用線上sql工具,選 MySQL 5.6 版本也是成功的
這個線上sql工具目前似乎是沒有 MariaDB 可以選
所以就發現了 MariaDB 和 MySQL 兩者處理方式的不同
「可能可以用」的解法
https://sqlfiddle.com/#!9/758ad/3
不清楚這是不是 MariaDB 在規格文件上有提到的變更?
又或者是? 其他的可能性?
總之先記下來提醒自己有這件事吧
-
這個結果是今天自己意外發現的
當然也有可能其實是我... 後知後覺?已知用火?
如果遇到這種結果不同的情形時,採用哪一種方式做可能會比較好?
1. 永遠不要換資料庫?
2. 不要用這種 sql 語法,避免以後升級資料庫出問題?
3. 其他?
--
◣▁▁ ◢ ▄▄▄▄▄▄▄ . * ▃ ▃
▁▁◢ ◤◢狼出沒注意! . ˊ . ▎ ▅▂ ▂▅
◢ ◢◤ ◣ ▄▄▄▄▄▄▄ . ▊
◥▁▃▂▁ ◣ ◆↗https://chippclass.99k.org/↙◆
◥ ▇▇▇ ◣ ◆↗telnet://bs2.to (P_chippclass)↙◆
▇▆▅▂ ψchippclass ▅▂▁
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 182.235.174.82
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1476518496.A.8E8.html
是因為要解上一篇文章的題目才採用這種語法,所以 order by 沒有在最外面一層
或是有什麼其他更好的語法可以讓兩種不同結果的資料庫通吃? 我也很有興趣
我文章中只有使用到「先把兩個子集合合併(union, not join) ,然後再排序」
你說的情形「子集合排序然後再合拼起來」並不在我的這篇文章中有出現過
所以我不清楚你在說哪一件事
※ 編輯: chippclass (182.235.174.82), 10/15/2016 18:55:44
※ 編輯: chippclass (182.235.174.82), 10/15/2016 18:58:31
我會覺得? 很抱歉這不是我覺得,而是已經發生的事實
我文章內文有這麼一段:
資料庫的版本是
show variables like 'version';
+-----------------+ +--------------------------+
| Value | | Value |
+-----------------+ +--------------------------+
| 10.1.13-MariaDB | | 5.0.51b-community-nt-log |
+-----------------+ +--------------------------+
上面附了兩張圖,在原本的文章內容就有
現實擺在眼前
不是我覺得
而是某個版本的 MySQL (5.0.51b-community-nt-log)
他跑出來的結果就是:已經排序過的子集合,重新 select 後,排好的順序不會變
※ 編輯: chippclass (182.235.174.82), 10/15/2016 21:25:13
... <看更多>