服務項目:網(wǎng)站建設、仿站、程序開發(fā)、APP開發(fā)設計、移動網(wǎng)站開發(fā)設計、企業(yè)網(wǎng)站設計、電子商務網(wǎng)站開發(fā)、網(wǎng)站維護、網(wǎng)站推廣、UX/UI 、HTML5、CSS3、JS / Jquery ...
          四川浚浚科技有限公司
          四川浚浚科技有限公司 (開發(fā)設計官網(wǎng))TEL : 15308000360 / QQ : 38585404
          深入挖掘用戶需求
          成就品質(zhì)用戶體驗

          您的位置:首頁 > 技術(shù)經(jīng)驗 > 數(shù)據(jù)庫 > 正文

          Mysql字符串截取函數(shù)SUBSTRING的用法說明
          技術(shù)支持服務電話:15308000360 【7x24提供運維服務,解決各類系統(tǒng)/軟硬件疑難技術(shù)問題】

          今天建視圖時,用到了MySQL中的字符串截取,很是方便。
          感覺上MySQL的字符串函數(shù)截取字符,比用程序截取(如PHP或JAVA)來得強大,所以在這里做一個記錄,希望對大家有用。
          函數(shù):
          1、從左開始截取字符串
          left(str, length)
          說明:left(被截取字段,截取長度)
          例:select left(content,200) as abstract from my_content_t
          2、從右開始截取字符串
          right(str, length)
          說明:right(被截取字段,截取長度)
          例:select right(content,200) as abstract from my_content_t
          3、截取字符串
          substring(str, pos)
          substring(str, pos, length)
          說明:substring(被截取字段,從第幾位開始截取)
          substring(被截取字段,從第幾位開始截取,截取長度)
          例:select substring(content,5) as abstract from my_content_t
          select substring(content,5,200) as abstract from my_content_t
          (注:如果位數(shù)是負數(shù) 如-5 則是從后倒數(shù)位數(shù),到字符串結(jié)束或截取的長度)
          4、按關(guān)鍵字截取字符串
          substring_index(str,delim,count)
          說明:substring_index(被截取字段,關(guān)鍵字,關(guān)鍵字出現(xiàn)的次數(shù))
          例:select substring_index("blog.jb51.net","。",2) as abstract from my_content_t
          結(jié)果:blog.jb51
          (注:如果關(guān)鍵字出現(xiàn)的次數(shù)是負數(shù) 如-2 則是從后倒數(shù),到字符串結(jié)束)

          函數(shù)簡介:

          SUBSTRING(str,pos) , SUBSTRING(str FROM pos) SUBSTRING(str,pos,len) , SUBSTRING(str FROM pos FOR len)

          不帶有l(wèi)en 參數(shù)的格式從字符串str返回一個子字符串,起始于位置 pos。帶有l(wèi)en參數(shù)的格式從字符串str返回一個長度同len字符相同的子字符串,起始于位置 pos。 使用 FROM的格式為標準 SQL 語法。也可能對pos使用一個負值。假若這樣,則子字符串的位置起始于字符串結(jié)尾的pos 字符,而不是字符串的開頭位置。在以下格式的函數(shù)中可以對pos 使用一個負值。

          詳情請查閱手冊。

          實例:
          表1:user

          表2:jl

          期望效果:通過user表jlid字段存儲的id值,讀取jl表中的相應記錄,這里想要讀取,jl表中id為1、2的記錄,首先想到用in,但是很遺憾由于
          jlid字段存儲的id值有2個,盡管從形式上符合in(1,2)的格式,但是如果你使用select jl.* from jl where jl.id in(select jlid from user where user.id=1)來查詢的話,是不行的,他總是返回id為1的記錄。

          那么怎么辦呢?如果我們能夠分別得到1,2中的1和2就行了。好在mysql也提供了字符串截取函數(shù)SUBSTRING。

          sql句法如下:
          SELECT jl. *
          FROM jl
          WHERE jl.id = (
          SELECT SUBSTRING( (

          SELECT user.jlid
          FROM user
          WHERE user.id =1
          ), 1, 1 ) )
          OR jl.id = (

          SELECT SUBSTRING( (

          SELECT user.jlid
          FROM user
          WHERE user.id =1
          ), 3, 1 )
          )
          LIMIT 0 , 30

          簡單解釋一下:

          SELECT SUBSTRING( (SELECT user.jlid FROM user WHERE user.id =1), 1, 1 ) )
          這里用了子查詢,首先查詢user表中,id為1的jlid字段的值,返回的是字符串,然后使用SUBSTRING進行截取,得到字符串1
          SELECT SUBSTRING( (SELECT user.jlid FROM user WHERE user.id =1), 3, 1 ) )
          這條語句得到2

          1和2都得到了再通過主查詢的where來查詢,要注意我們需要查詢id=1和id=2的記錄,所以用到了OR,怎么樣,是不是有點麻煩,

          您的第一直覺是不是要用2條sql語句,中間再配合php的explode函數(shù)來查詢呢?這樣想是正常的,但是這兩者之間誰的效率高,站長并沒有測試,希望有心的你,可以幫忙哦!



          上一篇:Mysql命令行導入sql數(shù)據(jù)
          下一篇:MYSQL配置文件中文解釋

          相關(guān)熱詞搜索:mysql
          主站蜘蛛池模板: 全彩acg无翼乌| 国产色视频网免费| 久久精品无码一区二区三区不卡| 精品一区二区三区在线观看| 国产成人精品曰本亚洲78| 99视频精品全部在线观看| 日本动态120秒免费| 亚洲欧洲春色校园另类小说| 美国式禁忌免费| 国产成人精品亚洲一区| 99heicom视频| 性欧美16sex性高清播放| 久久精品国产69国产精品亚洲 | 最刺激黄a大片免费网站| 亚洲综合视频在线| 紧身短裙女教师波多野| 国产成人无码精品久久久免费| 91麻豆最新在线人成免费观看| 性欧美激情xxxd| 久久亚洲国产精品五月天婷 | a级毛片高清免费视频在线播放| 日本3p视频在线看高清| 亚洲av无码专区电影在线观看| 澡人人澡人澡人人澡天天| 四虎成人免费网址在线| 黄页网址在线观看| 国产精品影音先锋| jianema.cn| 成人免费ā片在线观看| 久久精品人人做人人爽电影蜜月 | 你懂的在线视频网站| 大地资源视频在线观看| 东北女人毛多水多牲交视频| 日本高清黄色电影| 亚洲va国产va天堂va久久| 每日更新在线观看av| 免费jjzz在在线播放国产| 美女扒开尿口让男人看的视频| 国产午夜无码精品免费看动漫 | 亚洲精品偷拍无码不卡av| 精品一区二区三区在线播放 |