1. 程式人生 > >mysql 自定義排序規則

mysql 自定義排序規則

大家都知道, MySQL 中按某欄位升序排列的 SQL 為 (以 id 為例, 下同):

SELECT * FROM `MyTable` 
WHERE `id` IN (1, 7, 3, 5) 
ORDER BY `id` ASC

降序排列的 SQL 為:

SELECT * FROM `MyTable` 
WHERE `id` IN (1, 7, 3, 5) 
ORDER BY `id` DESC

有時以上排序並不能滿足我們的需求. 例如, 我們想要按 id 以 5, 3, 7, 1 的順序排列, 該如何實現. 這也是很多國內外同行經常遇到的問題之一.

下面我們給出按表中某欄位, 以我們想要的列表方式排序的解決方案.

解決方案

用"按欄位排序" (ORDER BY FIELD).

語法

ORDER BY FIELD(`id`, 5, 3, 7, 1)

要注意的是, FIELD 後面是沒有空格的.

因此, 完整的 SQL 為:

SELECT * FROM `MyTable` 
WHERE `id` IN (1, 7, 3, 5) 
ORDER BY FIELD(`id`, 5, 3, 7, 1)

常見應用

SELECT * FROM `MyTable` 
WHERE `name` IN ('張三', '李四', '王五', '孫六') 
ORDER BY FIELD(`name`, '李四', '孫六', '張三', '王五')

相關推薦

mysql 定義排序規則

大家都知道, MySQL 中按某欄位升序排列的 SQL 為 (以 id 為例, 下同): SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ORDER BY `id` ASC 降序排列的 SQL 為: SEL

spark定義排序規則

package cn.edu360.day5 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /** * Created by zx on 2017/10/10. */ o

Spark-Core定義排序規則

1.利用case特性,定義一個類,在類中進行排序 package day02 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} object UserOrdered01 {

MYSQL定義排序,欄位置頂等

在MYSQL資料庫查詢時,排序是經常用到的一個功能。單純按照某欄位排序查詢較為簡單,無非就是order by `field` (DESC/ASC)。如: 1 SELECT * FROM `table` 2 ORDER BY `field` DESC 注

Mysql定義排序,order by問題

自定義 常用的order by已經可以解決大部分問題,但如下問題卻不好解決: 狀態status,0:申請,1:通過,-1拒絕 此時新申請的在前,通過在後,拒絕的最後 SELECT * FROM

MySQL定義排序函式FIELD()

MySQL可以通過field()函式自定義排序,格式:field(value,str1,str2,str3,str4),value與str1、str2、str3、str4比較,返回1、2、3、4,如遇到null或者不在列表中的資料則返回0. 這個函式好像Oracle中沒有專

MySQL定義排序去重

 MySQL表中有多個使用者,每個使用者有他的成績,一個使用者可能有多個不同的成績,    查詢結果成績由高到低排列,有多個成績的使用者,只取他的最高分。 [sql] view plain copy  print? select * fromus

map定義排序規則

#include <iostream> #include <map> #include <string> using namespace std; struct c

MySQL定義排序

png sel 結果集 sql 倒序 esc com 使用 技術 存在表A 按名字倒序排 SELECT * FROM A ORDER BY name DESC 結果如下: 若需要按照王五、張三、李四的順序排序,使用自定義排序:FIE

Collections定義List排序規則,進行定義排序

cti str targe collect dex pre div spa out //這裏的順序,是我自己定義的一個List<String> String[] regulation = {"諸葛亮","魯班","貂蟬","呂布"}; final List&l

mysql排序的中文首字母排序定義排序

二級 and gbk order by 首字母 order 排序 sql排序 code select * FROM organ_new where city_code = ‘SZ0755‘ and organ_type = ‘H‘ and state =

mysql數據庫對字段定義排序的應用

cat mit lan 價格 pid life sans 函數 content 之前做項目 有個需求是 二手租房按照 房租價格 從低到高排序,面議的價格要在最後顯示出來。 因為數據庫中 面議 的價格(price)是(-1,0) 如果按照從低到高,面議的價格就會顯示在最

mysql 使用order by field() 定義排序

 一、mysql field自定義排序函式的格式 order by field(value,str1,str2,str3,str4,,,,,,strn) 其中value後面的引數自定義,不限制引數個數 含義 將獲取出來的資料根據str1,str2,str3,str4

mysql如何用order by 定義排序

原表 user: id  name   roleId 1    aaa     1 2    bbb     2 3    ccc     3 4    ddd     4 5    eee     51,MySQL可以通過field()函式自定義排序,格式:fi

mysql定義函數

host key 是否 ble sea 判斷語句 bin iter str 1、先查看函數功能是否開啟:show variables like ‘%func%‘; 若是未開啟則:SET GLOBAL log_bin_trust_function_creators=1; 關閉

Mysql中的排序規則utf8_unicode_ci、utf8_general_ci的區別總結

數據 general ins 什麽 tab where 進制 用戶 table Mysql中的排序規則utf8_unicode_ci、utf8_general_ci的區別總結 用了這麽長時間,發現自己竟然不知道utf_bin和utf_general_ci這兩者到底有什麽區別

Jquery Validate 默認校驗規則及常用的定義驗證規則

字符 eth ber exp string amp 手機 zip 子郵件 Jquery Validate 相關參數及常用的自定義驗證規則 一、官網地址:http://bassistance.de/jquery-plugins/jquery-plugin-validatio

java中實現Comparable接口實現定義排序

static -1 return rabl generated args logs ava sca 1 class Student implements Comparable{ 2 String name; 3 int gpa; 4 @Ov

Mysql中的排序規則utf8_unicode_ci、utf8_general_ci的區別

排序 區別 速度 pan 例如 找不到 unicode alt lac utf8_unicode_ci和utf8_general_ci對中、英文來說沒有實質的差別。utf8_general_ci 校對速度快,但準確度稍差。

織夢按權重排序定義排序

load ima row idt last 教程 syn 模板文件 而已 【按權重排序】 dede:list 的方法 1、找到"根目錄\include\arc.listview.class.php"文件。 2、修改代碼:在文件第727行處添加按weight排序判斷代碼(紅色