Mysql字符串截取函數SUBSTRING的用法說明_Mysql

來源:腳本之家  責任編輯:小易  

substr(列名,值1,值2)獲取列名值1和值2之間的數,例如select sunstr(name,2,4)from student where name='lilei'結果就是ileicharindex(值1,值2)返回值1在值2中的其實位置charindex('sql','microsoft.sql.server')結果返回11www.anxorj.tw防采集請勿采集本網。

感覺上MySQL的字符串函數截取字符,比用程序截。ㄈ鏟HP或JAVA)來得強大,所以在這里做一個記錄,希望對大家有用。

函數:

1、從左開始截取字符串

先把自動事務提交關掉,或者做好備份工作. SET AUTOCOMMIT=0;刪除最后5個字符: UPDATE NEWS SET NEWSTEXT=substring(NEWSTEXT,1,length(NEWSTEXT)-5) WHERE ID BETWEEN 100 AND 200 AND length

left(str, length)

mysql 中有截取字符串的 但是不建議使用 mysql 進行截取操作效率很低 建議使用程序進行截取 如果比較 執著 下面的sql 可以截取字符 select left(content,200)as abstract from my_content_t 從左開始200個

說明:left(被截取字段,截取長度)

select REVERSE(right(REVERSE(filename),length(filename)-LEAST if(Locate('0',REVERSE(filename))>0,Locate('0',REVERSE(filename)),999), if(Locate('1',REVERSE(filename))>0,Locate('1',

例:select left(content,200) as abstract from my_content_t

先判斷的位置 position('_'in column_name) 再截取字符串就可以了 substr(column_name,1,position('_' in column_name))

2、從右開始截取字符串

要視情況而定,不同的要求有不同的截取辦法?煞譃閺淖笸医厝,從右往左截取,從第幾位截取,關鍵字截取。步驟如下。具體步驟如下: 從左開始截取字符串 left(str,length) 說明:left(被截取

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

(注:如果位數是負數 如-5 則是從后倒數位數,到字符串結束或截取的長度)

4、按關鍵字截取字符串

substring_index(str,delim,count)

說明:substring_index(被截取字段,關鍵字,關鍵字出現的次數)

例:select substring_index("blog.jb51.net","。",2) as abstract from my_content_t

結果:blog.jb51

(注:如果關鍵字出現的次數是負數 如-2 則是從后倒數,到字符串結束)

函數簡介:

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

不帶有len 參數的格式從字符串str返回一個子字符串,起始于位置 pos。帶有len參數的格式從字符串str返回一個長度同len字符相同的子字符串,起始于位置 pos。 使用 FROM的格式為標準 SQL 語法。也可能對pos使用一個負值。假若這樣,則子字符串的位置起始于字符串結尾的pos 字符,而不是字符串的開頭位置。在以下格式的函數中可以對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也提供了字符串截取函數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函數來查詢呢?這樣想是正常的,但是這兩者之間誰的效率高,站長并沒有測試,希望有心的你,可以幫忙哦!

有一些區別,使用T-SQL語句SQL SEVER。點擊看詳細,但差別不大,在MYSQL SQL SEVER報表基本上都可以使用,比如插入語句需要細微的變化。SQL SERVER頂部內不能在MYSQL,MYSQL限制使用來代替。點擊看詳細具體的你可以看一下說明書內容來自www.anxorj.tw請勿采集。


  • 本文相關:
  • mysql replace函數替換字符串語句的用法
  • mysql獲取字符串長度函數(char_length)
  • mysql計算時間差函數
  • 詳解mysql中concat函數的用法(連接字符串)
  • mysql中日期和時間戳互相轉換的函數和方法
  • mysql日期函數與日期轉換格式化函數大全
  • mysql常用函數匯總(分享)
  • mysql字符串處理函數詳細介紹、總結
  • mysql存儲過程與函數詳解
  • mysql的存儲過程和函數簡單寫法
  • mysql流程函數常見用法實例分析
  • 淺析mysql顯式類型轉換
  • mysql dml語句整理匯總
  • mysql5.7完全卸載步驟詳解
  • mysql中數據類型的驗證
  • 詳解mysql索引原理以及優化
  • mysql 5.7雙主同步部分表的實現過程詳解
  • mysql從執行.sql文件時處理\n換行的問題
  • centos7.3下mysql5.7.18安裝并修改初始密碼的方法
  • 詳細介紹基于mysql的搜索引擎mysql-fullltext
  • mac os10.12安裝mysql5.7.18教程
  • MYSQL中使用sql函數怎樣截取字符串
  • MYSQL中使用sql函數怎樣截取字符串
  • MySQL截取字符串函數的幾種方法
  • mysql怎么截取字段的字符串
  • 如何用MYSQL函數刪除字符串最后幾個字符
  • 請教,哪位大俠知道mysql 中截取字符串的function怎么寫?(比如字符串根據逗號截。,謝謝了
  • mysql 截取字符串中的數字
  • 各位大神,MySQL截取字符串到某一制定位置,語句怎么寫?
  • mysql的查詢中怎么截取字符串
  • 如何利用MySQL數據庫中的字符串函數拼接截取
  • 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess數據庫文摘數據庫其它首頁mysqlmysql replace函數替換字符串語句的用法mysql獲取字符串長度函數(char_length)mysql計算時間差函數詳解mysql中concat函數的用法(連接字符串)mysql中日期和時間戳互相轉換的函數和方法mysql日期函數與日期轉換格式化函數大全mysql常用函數匯總(分享)mysql字符串處理函數詳細介紹、總結mysql存儲過程與函數詳解mysql的存儲過程和函數簡單寫法mysql流程函數常見用法實例分析淺析mysql顯式類型轉換mysql dml語句整理匯總mysql5.7完全卸載步驟詳解mysql中數據類型的驗證詳解mysql索引原理以及優化mysql 5.7雙主同步部分表的實現過程詳解mysql從執行.sql文件時處理\n換行的問題centos7.3下mysql5.7.18安裝并修改初始密碼的方法詳細介紹基于mysql的搜索引擎mysql-fullltextmac os10.12安裝mysql5.7.18教程mysql安裝圖解 mysql圖文安裝教程windows下mysql5.6版本安裝及配置can""t connect to mysql servermysql字符串截取函數substring的mysql創建用戶與授權方法mysql提示:the server quit withmysql日期數據類型、時間類型使用mysql——修改root密碼的4種方法mysql update語句的用法詳解mysql 的case when 語句使用說明解決當mysql數據庫遇到syn flooding問題windows下傻瓜式安裝mysql5.7mysql 5.6.14 win32位免安裝解壓縮版配置windows10下mysql 5.7.17 安裝配置方法圖mysql 的存儲引擎,myisam和innodb的區別mysql 5.7.9 服務無法啟動-“net helpmsgmysql清除log-bin日志的方法mysql數據庫服務器逐漸變慢分析與解決方法mysql5.7忘記root密碼及mysql5.7修改rootmysql中表單輸入數據出現中文亂碼的解決方
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.anxorj.tw All Rights Reserved
    陕西快乐10分下载