悟心

          成功不是將來才有的,而是從決定去做的那一刻起,持續累積而成。 上人生的旅途罷。前途很遠,也很暗。然而不要怕。不怕的人的面前才有路。

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            93 隨筆 :: 1 文章 :: 103 評論 :: 0 Trackbacks

           

          替換like,使sql語句更有效率

          提到Like語句大家都很熟悉,比如查找用戶名包含有"c"的所有用戶, 我們可以用

          use mydatabase
          select * from table1 where username like'%c%"

          以下是完成上面功能的另一種寫法:

          use mydatabase
          select * from table1 where charindex('c',username)>0

          這種方法理論上比上一種方法多了一個判斷語句,即>0, 但這個判斷過程是最快的, 我相信80%以上的運算都是花在查找字符串及其它的運算上, 所以運用charindex函數也沒什么大不了。用這種方法也有好處, 那就是對%,|等在不能直接用like 查找到的字符中可以直接在這charindex中運用, 如下:

          use mydatabase
          select * from table1 where charindex('%',username)>0

          大家還可以寫成:

           

          use mydatabase
          select * from table1 where charindex(char(37),username)>0

          ASCII的字符即為%

          posted on 2009-11-18 18:04 艾波 閱讀(3120) 評論(1)  編輯  收藏 所屬分類: SQL

          評論

          # re: 替換like,使sql語句更有效率【轉】 2009-11-19 08:41 yangtao
          請問這個charIndex函數是哪個數據庫下的
          是標準SQL嗎?
          Oracle有對應的函數嗎?  回復  更多評論
            

          主站蜘蛛池模板: 永兴县| 白河县| 精河县| 如东县| 大渡口区| 六安市| 鸡西市| 乌拉特后旗| 贺州市| 哈巴河县| 新安县| 临武县| 昂仁县| 吉隆县| 平武县| 陇西县| 黔东| 苗栗市| 天气| 克拉玛依市| 牙克石市| 迁安市| 嘉义市| 枝江市| 灵宝市| 阿瓦提县| 南和县| 惠东县| 垣曲县| 潞西市| 新建县| 青川县| 西城区| 上饶市| 公主岭市| 石屏县| 大港区| 姜堰市| 上林县| 兴安县| 楚雄市|