MySQL自定義order by排序規(guī)則的示例詳解
數(shù)據(jù)表
create table tb_user ( id bigint auto_increment primary key, name varchar(16) not null, age int not null, address varchar(128) null ); INSERT INTO test.tb_user (id, name, age, address) VALUES (1, '張三', 18, 'China'); INSERT INTO test.tb_user (id, name, age, address) VALUES (2, '李四', 19, 'China'); INSERT INTO test.tb_user (id, name, age, address) VALUES (3, 'jack', 20, 'America'); INSERT INTO test.tb_user (id, name, age, address) VALUES (4, 'jane', 22, 'America'); INSERT INTO test.tb_user (id, name, age, address) VALUES (5, 'pig', 19, 'Japan'); INSERT INTO test.tb_user (id, name, age, address) VALUES (6, 'cat', 22, 'Japan');
一、使用field()函數(shù)自定義順序
① 一個字段排序
優(yōu)先China,其次America,最后Japan
select name, address from tb_user order by field(address, 'China', 'America', 'Japan') asc
asc可省略,如果有些數(shù)據(jù)不在指定范圍內(nèi),則從最后開始按照默認(rèn)排序
② 多個字段排序
先按照address升序排序,相同再按照name降序排序
select name, address from tb_user order by field(address, 'China', 'America', 'Japan') asc, field(name, '李四', '張三', 'jane', 'jack') desc
二、使用case when自定義排序規(guī)則
① 一個字段
優(yōu)先China,其次America,最后Japan
select name, address from tb_user order by case address when 'China' then 1 when 'America' then 2 when 'Japan' then 3 end, address asc
asc可省略
② 多個字段
先按照address排序,相同再按照name排序
select name, address from tb_user order by case address when 'China' then 1 when 'America' then 2 when 'Japan' then 3 end, address asc, case name when '李四' then 1 when '張三' then 2 when 'jane' then 3 when 'jack' then 4 end, name desc
三、隨機(jī)排序
使用rand()函數(shù)隨機(jī)排序,不根據(jù)任何字段,每次的順序都是隨機(jī)的
select name, address from tb_user order by rand()
到此這篇關(guān)于MySQL自定義order by排序規(guī)則的示例詳解的文章就介紹到這了,更多相關(guān)mysql order by內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mysql中key 、primary key 、unique key 與index區(qū)別
這篇文章主要介紹了mysql中key 、primary key 、unique key 與index區(qū)別的相關(guān)資料,需要的朋友可以參考下2016-10-10MySQL 文本文件的導(dǎo)入導(dǎo)出數(shù)據(jù)的方法
但有時為了更快速地插入大批量數(shù)據(jù)或交換數(shù)據(jù),需要從文本中導(dǎo)入數(shù)據(jù)或?qū)С鰯?shù)據(jù)到文本。下面的具體的方法大家可以參考下。多測試。2009-11-11MySQL存儲表情時報錯:java.sql.SQLException: Incorrect string value:‘
這篇文章主要給大家介紹了關(guān)于MySQL存儲表情時報錯:java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\xA9\x0D\x0A...'的解決方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2018-04-04