SQL字符型字段按數(shù)字型字段排序?qū)崿F(xiàn)方法
這是很久之前的就遇到的問(wèn)題了,去年寫了個(gè)WP插件:WordPress投票插件Ludou Simple Vote,由于有些使用者需要一個(gè)投票排行榜,所以需要用一條SQL來(lái)讀取按得分排序的文章列表。
Ludou Simple Vote的投票得分結(jié)果是以自定義欄目的方式存儲(chǔ)在WordPress的postmeta中,分值存放在meta_value字段,而meta_value字段類型是longtext,如果直接使用下面的SQL查詢語(yǔ)句來(lái)排序:
那么按得分排序得到的結(jié)果可能是:
1
10
11
123
1234
2
25
253
3
由于是按字母順序排列,所以123排在了2的前面,顯然不符合我們的要求,那么怎樣才能按照我們預(yù)想的數(shù)字順序排序呢?下面介紹兩種方法。
一、采用MySQL的cast函數(shù),轉(zhuǎn)換字段格式
這里我們將meta_value字段轉(zhuǎn)換成數(shù)值類型的字段DECIMAL,然后再進(jìn)行排序:
需要注意的是,你所要排序的meta_value字段的值必須都是可轉(zhuǎn)換成數(shù)字,否則將會(huì)出錯(cuò)。
二、使用MySQL絕對(duì)值函數(shù)ABS
使用MySQL絕對(duì)值函數(shù)ABS,它告訴MySQL使用絕對(duì)值來(lái)處理處理這個(gè)字段:
相關(guān)文章
MySQL 5.6.51 解壓版(zip版)安裝配置圖文方法
這兩天剛試用了一下MySQL5.6.51,感覺(jué)還不錯(cuò),有兄弟戲稱是一個(gè)高富帥版本。現(xiàn)將MySQL5.6.51 zip解壓版本的安裝配置過(guò)程記錄如下,希望能給需要安裝該版本的朋友一點(diǎn)參考作用2015-08-08
CentOS7下mysql 8.0.16 安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了CentOS7下mysql 8.0.16 安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05
MySQL的雙寫緩沖區(qū)Doublewrite Buffer詳解
這篇文章主要介紹了MySQL的雙寫緩沖區(qū)Doublewrite Buffer詳解,InnoDB是MySQL中一種常用的事務(wù)性存儲(chǔ)引擎,它具有很多優(yōu)秀的特性,其中,Doublewrite Buffer是InnoDB的一個(gè)重要特性之一,本文將介紹Doublewrite Buffer的原理和應(yīng)用,需要的朋友可以參考下2023-07-07
MySQL 數(shù)據(jù)庫(kù)函數(shù)庫(kù)
MySQL 數(shù)據(jù)庫(kù)函數(shù)庫(kù)...2006-12-12
MySQL4 File ‘c:\mysql\share\charsets\?.conf’ not found (Errc
File ‘c:\mysql\share\charsets\?.conf’ not found (Errcode: 22) Character set ‘#33′ is not a compiled character set and is not specified in the ‘c:\mysql\share\charsets\Index’ file2013-08-08
Advanced SQL Injection with MySQL
Advanced SQL Injection with MySQL...2006-12-12
Linux下如何通過(guò)MySQL二進(jìn)制包安裝MySQL5.7
這篇文章主要介紹了Linux下如何通過(guò)MySQL二進(jìn)制包安裝MySQL5.7,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07

