select * from t_able where b >40 order by b desc

解决方案 »

  1.   

    这个看来只能借助于PHP的正则来完成了,如果只是用SQL语言,估计很难完成,或者是效率极极低,现在太忙,不然可以发上来参考了
      

  2.   

    该不会是SELECT * FROM table再分析吧...如果效率低的话,那我还是存多几个字段好了~
    等着看有没人来~不然就结了~
      

  3.   


    select * from TABLE where substring_index(substring_index(data,'=',-2),';',1)+0>1 order by substring_index(substring_index(data,'=',-2),';',1)+0 desc;
    试试看,我是安你上面给的格式来的
      

  4.   

    去查了查手册,我也试了一下,学习,呵呵,就像2楼那位兄台说的,效率肯定不好,好多函数嵌套。
    还是加字段吧,也不麻烦,取出来存进去就好了
    SELECT * , 
    replace(
       replace(
         data,
         concat(SUBSTRING_INDEX( data, '=', 2 ),'='), 
         ''
       ),
       concat(';',SUBSTRING_INDEX( data, ';', -1 )),
       ''
    )
    FROM TABLE where 
    replace(
       replace(
         data,
         concat(SUBSTRING_INDEX( data, '=', 2 ),'='), 
         ''
       ),
       concat(';',SUBSTRING_INDEX( data, ';', -1 )),
       ''
    )>=40
      

  5.   


    这位学长,有必要这样咬文嚼字吗?我说的也不麻烦是相对而言的,
    难道你认为我写的是最好的方案?
    或许有人就能用正则写出看起来更简单的。比如说您这种高人。
    如果我说“加字段是非常简单”,那如果您这样的高人弄出来一个更简单的sql语句,我不是自找苦吃吗。
    没想到结果我还是把您的那根筋给挑动了。
    我还是菜鸟,我说了我只是想学习,巩固,了解一下mysql里的很多函数。
    不管怎么样,如果结果蒙对了呢,楼主给点鼓励,弄点小分,我这小人物就欢天喜地了。