本帖最后由 u010354122 于 2013-04-18 16:27:34 编辑

解决方案 »

  1.   

    觉得主要是你在where条件后用了函数了,这样的话即便是这列有索引可能也会慢的....
      

  2.   

    郁闷,这个字段是字符型的,值是0或1组成的一个长度为5的字符串,现在我要判断后4位是否有1出现,想来这个方法,肯定要用函数的,
    SELECT
        case when substr(est.qst_flg,1,1) = '1' and est.shop_status >= 1 then est.shop_book_id
        when substr(est.qst_flg,2,4) <> '0000' and est.est_status >= 1 then est.est_id
        else est_id
        end as id
    FROM
        table est
    WHERE
        substr(est.qst_flg,2,4) <> '0000';
    这个大概就是我主要用的,整个sql比较复杂,所以想尽量优化下