SELECT * , substring(content,charindex(N'厲害了',content),3) as [厲害了] FROM news WHERE content LIKE %厲害了%我的哥%’
公司主營業(yè)務:網站制作、網站建設、移動網站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出濮陽縣免費做網站回饋大家。
SELECT * , substring(content,charindex('我的哥',content),3) as [我的哥] FROM news WHERE content LIKE %厲害了%我的哥%’
要視情況而定,不同的要求有不同的截取辦法。
可分為從左往右截取,從右往左截取,從第幾位截取,關鍵字截取。步驟如下。
具體步驟如下:
從左開始截取字符串
left(str, length)
說明:left(被截取字段,截取長度)
例:select left(content,200) as abstract from my_content_t
從右開始截取字符串
right(str, length)
說明:right(被截取字段,截取長度)
例:select right(content,200) as abstract from my_content_t
截取字符串
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ù),到字符串結束或截取的長度)
按關鍵字截取字符串
substring_index(str,delim,count)
說明:substring_index(被截取字段,關鍵字,關鍵字出現(xiàn)的次數(shù))
例:select substring_index(”blog.chinabyte.com”,”?!?,2) as abstract from my_content_t
結果:blog.chinabyte
(注:如果關鍵字出現(xiàn)的次數(shù)是負數(shù) 如-2 則是從后倒數(shù),到字符串結束)
結果:chinabyte.com
截取的字符串為15,151,152,16’,可以看作是ip吧(雖然這里指的不是iP),
然后要截取每個逗號之前那部分。
拆分以逗號隔開的字符串,這是高級語言來處理的吧,數(shù)據(jù)庫主要是存儲數(shù)據(jù)的,比如php就可以這樣實現(xiàn):
$string
=
'1,2,3,4,5';
$array
=
explode(',',$string);
之后就得出一個數(shù)組,$array(1,2,3,4,5);
MySQL分割字符串應該如何實現(xiàn)呢?下面就為您介紹MySQL分割字符串的實現(xiàn)方法步驟,希望可以讓您對MySQL分割字符串有更多的了解。
例如:update `edw_video` set company = substring(keyword,1,length(SUBSTRING_INDEX(keyword,",",1)))
名稱:SPLIT_SUB_STR1(取得split字符串的第一段)
參數(shù):str 要split的目標字符串 (輸入格式為‘11,2,3,4,5,6’; 輸出為‘2,3,4,5,6’)
delimiter 分隔符 (‘,’)
split1 輸出第一項(‘11’)
存儲過程
CREATE DEFINER=`root`@`%` PROCEDURE `SPLIT_SUB_STR0`(inout str VARCHAR(1000) ,delimiter VARCHAR(1), out split1 VARCHAR(20))
BEGIN
# 名稱 SPLIT_SUB_STR1 取得分割字符串的第一段字符
# 參數(shù)inout str VARCHAR(1000) ,delimiter VARCHAR(1), out split0 VARCHAR(20)
# 輸入完整字符串,輸出去掉取得第一項后的字符串; 分隔符; 輸出split的第一個項目
#分割出第一段字符串不包括分隔符的長度
DECLARE SUB_STR_LENGTH INT;
# SUBSTRING_INDEX函數(shù)取得目標字符串左側第n個分割符左側的部分,n為負時返回右側第n個的右部分
SET SUB_STR_LENGTH = length(SUBSTRING_INDEX(str,delimiter,1));
#截取第一段字符串,不包括分隔符,放入輸出參數(shù)里
SET split0 = substring(str, 1, SUB_STR_LENGTH);
# 取得去掉第一個字符串和分隔符的字符串,進行下次循環(huán)取得下個字符串
SET str = substring(str, SUB_STR_LENGTH + 2 );
#測試一下輸出是否正確
#SELECT SUB_STR_LENGTH, SUB_STR_SPLIT0, STR;
END
調用實例
CREATE DEFINER=`root`@`%` PROCEDURE `test`()
BEGIN
#目標字符串
set @a = ’1,2,3,4,5,6,12‘;
# 分隔符
set @c = ',';
# 存儲風格后的字符串
set @b = '';
REPEAT
# 調用上面的存儲過程
CALL SPLIT_SUB_STR0(@a, ',', @c);
#將取得的字符串拼接,測試用
set @b = concat(@b, @c);
#當目標字符串為空時,停止循環(huán)
UNTIL @a = ''
END REPEAT;
# 查看結果
select @a, @c, @b;
END;