程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL關於字符串中數字排序的成績剖析

MySQL關於字符串中數字排序的成績剖析

編輯:MySQL綜合教程

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數據庫計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved