前幾天工作上遇到一個問題,在mysql數(shù)據(jù)查詢的時候,使用的是in條件,而結(jié)果需要根據(jù)in來進(jìn)行排序,當(dāng)時嘗試了幾次都沒成功,后來在度娘的幫助下,找到了解決辦法:
創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的施秉網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
select * from table_name where id in (6,2,1,10,5,7..)
查詢的結(jié)果和in中的順序并不一致,也就是說在批量查詢時,mysql的查詢并不是按照in中的值得順序來查詢的。那怎么才能保證和in查詢中的順序相同呢?
查詢了資料發(fā)現(xiàn)有兩種方式可以對in查詢的結(jié)果進(jìn)行排序。一種是order by find_in_set,另外一種是order by substring_index
1、select * from table_name where id in (6,2,1,10,5,7..) order by find_in_set(id,'6,2,1,10,5,7');
2、select * from table_name where id in (6,2,1,10,5,7..)?order by substring_index('6,2,1,10,5,7',id,1);
SQL的核心要點是從數(shù)據(jù)存儲格式獲取應(yīng)用??倯?yīng)指定檢索數(shù)據(jù)的順序。在下面的第1條語句中,以 col_name1、col_name2、col_name3順序返回列;在第2條語句中,以col_name1、col_name3、 col_name2順序返回列: MySQL SELECT col_name1, col_name2, col_name3 FROM tbl_name; mysql SELECT col_name1, col_name3, col_name2 FROM tbl_name; 如果決定更改表列的順序,可執(zhí)行下述操作: 用具有新順序的列創(chuàng)建新表。 執(zhí)行該語句: mysql INSERT INTO new_table - SELECT columns-in-new-order FROM old_table; 撤銷或重命名old_table。
先把分類全取出來,并隨機排序,取排在第一個分類。
例如:西裝
然后查詢的時候 order by (category='西裝') desc,category 即可實現(xiàn)要求。
MySQL是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),MySQL數(shù)據(jù)庫系統(tǒng)使用最常用的數(shù)據(jù)庫管理語言--結(jié)構(gòu)化查詢語言(SQL)進(jìn)行數(shù)據(jù)庫管理。
由于MySQL是開放源代碼的,因此任何人都可以在General Public License的許可下下載并根據(jù)個性化的需要對其進(jìn)行修改。MySQL因為其速度、可靠性和適應(yīng)性而備受關(guān)注。大多數(shù)人都認(rèn)為在不需要事務(wù)化處理的情況下,MySQL是管理內(nèi)容最好的選擇。
MySQL這個名字,起源不是很明確。一個比較有影響的說法是,基本指南和大量的庫和工具帶有前綴“my”已經(jīng)有10年以上,而且不管怎樣,MySQL AB創(chuàng)始人之一的Monty Widenius的女兒也叫My。這兩個到底是哪一個給出了MySQL這個名字至今依然是個迷,包括開發(fā)者在內(nèi)也不知道。
MySQL的海豚標(biāo)志的名字叫“sakila”,它是由MySQL AB的創(chuàng)始人從用戶在“海豚命名”的競賽中建議的大量的名字表中選出的。獲勝的名字是由來自非洲斯威士蘭的開源軟件開發(fā)者Ambrose Twebaze提供。根據(jù)Ambrose所說,Sakila來自一種叫SiSwati的斯威士蘭方言,也是在Ambrose的家鄉(xiāng)烏干達(dá)附近的坦桑尼亞的Arusha的一個小鎮(zhèn)的名字。
MySQL,雖然功能未必很強大,但因為它的開源、廣泛傳播,導(dǎo)致很多人都了解到這個數(shù)據(jù)庫。它的歷史也富有傳奇性。