悟心

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

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            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函數(shù)也沒什么大不了。用這種方法也有好處, 那就是對%,|等在不能直接用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語句更有效率【轉(zhuǎn)】 2009-11-19 08:41 yangtao
          請問這個charIndex函數(shù)是哪個數(shù)據(jù)庫下的
          是標準SQL嗎?
          Oracle有對應(yīng)的函數(shù)嗎?  回復(fù)  更多評論
            

          主站蜘蛛池模板: 济源市| 天门市| 陇川县| 德令哈市| 石棉县| 故城县| 江西省| 古蔺县| 广饶县| 巴彦县| 腾冲县| 绍兴县| 吉隆县| 建平县| 永州市| 阿荣旗| 金华市| 咸宁市| 南溪县| 金堂县| 哈巴河县| 兴安盟| 金华市| 凤台县| 连州市| 万山特区| 张家口市| 黔东| 雷山县| 德格县| 神农架林区| 大兴区| 山丹县| 崇阳县| 海林市| 西和县| 义马市| 同德县| 沁水县| 宁阳县| 旅游|