MySQL關於字符串中數字排序的成績剖析。本站提示廣大學習愛好者:(MySQL關於字符串中數字排序的成績剖析)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL關於字符串中數字排序的成績剖析正文
本文實例講述了MySQL關於字符串中數字排序的成績。分享給年夜家供年夜家參考,詳細以下:
MySQL字符串信任年夜家都不生疏,在MySQL字符串排序時常常會碰到一些成績,好比上面要引見的這個
明天處理了一個關於MySQL字符串排序的很奇異的成績,在數據外面界說的是varchar類型,現實寄存的是Int類型的數據,按一下查詢語句停止排序:
將字段*1或許+0可以將MySQL字符串字段按數值排序
如:
select * from table where 1 order by id*1 desc;
或許
select * from table where 1 order by id+0 desc;
除上述辦法外,這裡附上一種排序辦法,應用find_in_set()停止無敵排序
附上Mysql函數 find_in_set() 的用法:
FIND_IN_SET(str,strlist)
Returns a value 假如字符串 str 在由 N 個子串構成的列表 strlist 中,前往一個 1 到 N 的值。一個字符串列表是由經由過程字符 “,” 分隔的多個子串構成。假如第一個參數是一個常數字符串,而且第二個參數是一個 SET 列類型,FIND_IN_SET() 函數將被優化為應用位運算!假如 str 在不 strlist 中或許假如 strlist 是一個空串,前往值為 0。假如任何一個參數為 NULL,前往值也是 NULL。假如第一個參數包括一個 “,”,這個函數將完整不克不及任務:
mysql> SELECT FIND_IN_SET('b','a,b,c,d'); -> 2
for example:
$sql = "select p.*, find_in_set(p.products_id,$string_hot_pid) as rank from products p where p.products_id in ($string_hot_pid) order by rank";
年夜家有甚麼好的設法主意和建議可以留下名貴的看法 以便配合提高
願望本文所述對年夜家MySQL數據庫計有所贊助。