Mysql中對字串型別的字段進行數字值排序

2021-08-28 21:34:27 字數 711 閱讀 4284

order by `meta_value`

那麼按得分排序得到的結果可能是:

1

1011

1231234225

2533

由於是按字母順序排列,所以123排在了2的前面,顯然不符合我們的要求,那麼怎樣才能按照我們預想的數字順序排序呢?下面介紹兩種方法。

一、採用mysql的cast函式,轉換字段格式

這裡我們將meta_value欄位轉換成數值型別的字段decimal,然後再進行排序:

**如下:

order by cast(`meta_value` as decimal)

需要注意的是,你所要排序的meta_value欄位的值必須都是可轉換成數字,否則將會出錯。

二、使用mysql絕對值函式abs

使用mysql絕對值函式abs,它告訴mysql使用絕對值來處理處理這個字段:

**如下:

order by abs(`meta_value`)

二、使用mysql絕對值函式abs

在需要排序的字段後增加*1或者+0

**如下:

order by meta_value*1

order by meta_value+0

mysql字串型別 mysql 字串型別

字串型別 字串型別指char varchar binary varbinary blob text enum和set。該節描述了這些型別如何工作以及如何在查詢中使用這些型別。型別大小用途 char0 255位元組定長字串 varchar0 65535 位元組變長字串 tinyblob0 255位元組...

MYSQL替換欄位中的部分字串

replace 函式是專門的字串替換的函式 replace str,from str,to str str 要查詢的字串 from str 要替換的字串 to str 替換成的字串 例 replace www.test.com test abc update table set f replace ...

mysql 可變字串 MySQL 字串型別

字串型 set enum blob text varchar char。1.char 字元 格式 char m 固定長度 m 表示嚴格限定的長度。char 5 varchar 5 5位元組1位元組 需要乙個位元組,儲存字串的總長度 abc abcde abcdef 超出限制,插入不成功 插入不成功 ...