zoukankan      html  css  js  c++  java
  • MySQL字符串中数字排序的问题

    MySQL中字符串排序的方法相信大家都比较熟悉了,下文就为您介绍一个字符串数字排序的问题解决,希望能对您有所启迪。

    MySQL字符串相信大家都不陌生,在MySQL字符串排序时经常会遇到一些问题,比如下面的这个:

    今天解决了一个关于MySQL字符串排序的很奇怪的问题,在数据里面定义的是varchar类型,实际存放的是Int类型的数据,按一下查询语句进行排序:

    将字段*1或者+0可以将MySQL字符串字段按数值排序
    如:

    1. select * from table where 1   order by id*1 desc;  


    或者

    1. 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。如果第一个参数包含一个 “,”,这个函数将完全不能工作:

      1. mysql> SELECT FIND_IN_SET('b','a,b,c,d');  
      2.         -> 2  
      3.    
      4. for example:  
      5. $sql = "select p.*, find_in_set(p.products_id,$string_hot_pid) as rank from pro
  • 相关阅读:
    UVALive 5983 MAGRID DP
    2015暑假训练(UVALive 5983
    poj 1426 Find The Multiple (BFS)
    poj 3126 Prime Path (BFS)
    poj 2251 Dungeon Master 3维bfs(水水)
    poj 3278 catch that cow BFS(基础水)
    poj3083 Children of the Candy Corn BFS&&DFS
    BZOJ1878: [SDOI2009]HH的项链 (离线查询+树状数组)
    洛谷P3178 [HAOI2015]树上操作(dfs序+线段树)
    洛谷P3065 [USACO12DEC]第一!First!(Trie树+拓扑排序)
  • 原文地址:https://www.cnblogs.com/printN/p/7275439.html
Copyright © 2011-2022 走看看