色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql根據字符串內數字排序

林玟書2年前10瀏覽0評論

在mysql中,我們可以使用order by子句進行排序操作。而如果需要按照字符串內部的數字大小進行排序,則需要使用一些特殊的技巧。

假設有以下字符串:

apple2
banana10
banana2
cherry1
cherry11

如果直接使用order by語句進行排序,則結果將類似這樣:

apple2
banana10
banana2
cherry1
cherry11

顯然,這并不符合我們的要求。我們希望按照數字的大小進行排序。

為了實現這個目標,我們可以使用mysql內置的函數substring和cast。

substring函數可以從字符串中提取出一段子字符串。而cast函數可以將字符串轉換為數字類型。

具體操作如下:

select * from table_name
order by cast(substring(column_name, patindex('%[0-9]%', column_name), len(column_name)) as unsigned)

解釋:

  1. patindex('%[0-9]%', column_name)表示在column_name列中查找到第一個數字的位置
  2. substring(column_name, patindex('%[0-9]%', column_name), len(column_name))表示提取出column_name列中從第一個數字開始的所有字符
  3. cast(substring(...) as unsigned)表示將提取出來的字符串轉換為無符號整型

使用以上語句進行排序,則結果將如下:

cherry1
apple2
banana2
banana10
cherry11

可以看到,按照數字大小進行排序的結果已經正確了。