當前位置:首頁 » 存儲配置 » mysql存儲過程字元串分割

mysql存儲過程字元串分割

發布時間: 2022-09-12 19:46:26

❶ mysql查詢怎樣智能分割字元串

SELECT * , substring(content,charindex(N'厲害了',content),3) as [厲害了] FROM news WHERE content LIKE %厲害了%我的哥%』

SELECT * , substring(content,charindex('我的哥',content),3) as [我的哥] FROM news WHERE content LIKE %厲害了%我的哥%』

❷ mysql 分割字元串

(field*1)>=1 AND (field*1)<=10

❸ mysql存的欄位取出來後怎麼分割輸出

str = '重慶,四川,北京';

SELECT substring_index('重慶,四川,北京','.', 1); #重慶

SELECT substring_index('重慶,四川,北京','.', 2); #四川

SELECT substring_index('重慶,四川,北京','.', 3); #北京

❹ sql語句進行字元串分割

你是什麼資料庫?mysql
按照第一個*號前面的字元串分組
然後匯總
select
a,sum(b)
from
pppppp.tablename1
group
by
substring_index(a,'*',1)
limit
0,
50
按照第二個*前面的字元串分組
然後匯總
select
a,sum(b)
from
pppppp.tablename1
group
by
substring_index(a,'*',2)
limit
0,
50

❺ Mysql中存儲過程或函數 如何將逗號分隔的字元串倒序輸出 如 :4531,8651,3256 變為: 3256,8651,4531

DELIMITER//

DROPFUNCTIONReverseWordBy//

CREATEFUNCTIONReverseWordBy(pOldValTINYTEXT,pDivCharCHAR(1))
RETURNSTINYTEXT
BEGIN
/**預期結果.**/
DECLAREvResultTINYTEXT;
--當前逗號的位置.
DECLAREvIndexINT;
--前一個逗號的位置.
DECLAREvPrevIndexINT;

--查詢第一個逗號的位置.
SETvIndex=INSTR(pOldVal,pDivChar);

IFvIndex=0THEN
--參數中沒有逗號,直接返回.
RETURNpOldVal;
ENDIF;

--初始化情況,前一個逗號不存在.
SETvPrevIndex=0;
--初始化結果為空白字元.
SETvResult='';

--循環處理。
WHILEvIndex>0DO
--設置結果=本次查詢的結果,以前的查詢結果.
SETvResult=CONCAT(SUBSTRING(pOldVal,vPrevIndex+1,(vIndex-vPrevIndex-1)),pDivChar,vResult);
--前一個逗號的位置=當前逗號的位置
SETvPrevIndex=vIndex;
--查詢下一個逗號的位置.
SETvIndex=LOCATE(pDivChar,pOldVal,vPrevIndex+1);
ENDWHILE;

--最後追加最後一組數據.
SETvResult=CONCAT(SUBSTRING(pOldVal,vPrevIndex+1),pDivChar,vResult);

--清除掉最後一個逗號.
SETvResult=LEFT(vResult,LENGTH(vResult)-1);

--返回結果.
RETURNvResult;
END;
//


DELIMITER;

SELECTReverseWordBy('4531,8651,3256',',')A;

SELECTReverseWordBy('1,12,123,1234,12345,123456',',')B;



輸出結果:

mysql>SELECTReverseWordBy('4531,8651,3256',',')A;
+----------------+
|A|
+----------------+
|3256,8651,4531|
+----------------+
1rowinset(0.00sec)

mysql>
mysql>SELECTReverseWordBy('1,12,123,1234,12345,123456',',')B;
+----------------------------+
|B|
+----------------------------+
|123456,12345,1234,123,12,1|
+----------------------------+
1rowinset(0.00sec)

❻ mysql如何進行以=分割的字元串的拆分

拆分以逗號隔開的字元串,這是高級語言來處理的吧,資料庫主要是存儲數據的,比如php就可以這樣實現:
$string
=
'1,2,3,4,5';
$array
=
explode(',',$string);
之後就得出一個數組,$array(1,2,3,4,5);

❼ 在mysql中有沒有分割字元串的函數

mysql 中有截取字元串的 但是不建議使用 mysql 進行截取操作效率很低 建議使用程序進行截取 如果比較 執著 下面的sql 可以截取字元 select left(content mysql 中有截取字元串的 但是不建議使用 mysql 進行截取操作效率很低 建議使用程序進行截取 如果比較 執著 下面的sql 可以截取字元 select left(content

❽ mysql存儲過程中 如何拆分字元串

MySQL分割字元串應該如何實現呢?下面就為您介紹MySQL分割字元串的實現方法步驟,希望可以讓您對MySQL分割字元串有更多的了解。

例如:update `edw_video` set company = substring(keyword,1,length(SUBSTRING_INDEX(keyword,",",1)))

名稱:SPLIT_SUB_STR1(取得split字元串的第一段)
參數: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 取得分割字元串的第一段字元
# 參數inout str VARCHAR(1000) ,delimiter VARCHAR(1), out split0 VARCHAR(20)
# 輸入完整字元串,輸出去掉取得第一項後的字元串; 分隔符; 輸出split的第一個項目

#分割出第一段字元串不包括分隔符的長度
DECLARE SUB_STR_LENGTH INT;

# SUBSTRING_INDEX函數取得目標字元串左側第n個分割符左側的部分,n為負時返回右側第n個的右部分
SET SUB_STR_LENGTH = length(SUBSTRING_INDEX(str,delimiter,1));

#截取第一段字元串,不包括分隔符,放入輸出參數里
SET split0 = substring(str, 1, SUB_STR_LENGTH);

# 取得去掉第一個字元串和分隔符的字元串,進行下次循環取得下個字元串
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);
#當目標字元串為空時,停止循環
UNTIL @a = ''
END REPEAT;
# 查看結果
select @a, @c, @b;

END;

❾ mysql存儲過程一個參數有多個逗號分割

這個應該可以使用字元串拼接,你是不是這樣寫存儲過程:
create procere p_proc(var_in int)
begin
delete from [tableName] where [colName] in (var_in);

end

然後又這樣調用:
call p_proc(1, 2, 3);
這樣肯定不行,那麼你可以這樣:
create procere p_proc(var_in varchar(5000))
begin

set @sql = concat("delete from [tableName] where [colName] in (", var_in, ")");

prepare stmt_exe_sql from @sql;
execute stmt_exe_sql;
deallocate prepare stmt_exe_sql;
end

這樣就相當於把(1, 2, 3)拼接成語句"delete from [tableName] where [colName] in (1, 2, 3)", 然後執行,就可以刪除了。

熱點內容
中國銀行查詢密碼是什麼 發布:2025-01-16 02:33:20 瀏覽:791
堅果pro錄音文件夾 發布:2025-01-16 02:31:46 瀏覽:938
支付寶的登錄密碼忘記了如何改 發布:2025-01-16 02:30:30 瀏覽:221
解壓作業泥 發布:2025-01-16 02:28:02 瀏覽:806
我的世界rpg伺服器空島 發布:2025-01-16 02:26:49 瀏覽:90
ps腳本函數 發布:2025-01-16 02:15:28 瀏覽:480
android顯示行數據 發布:2025-01-16 02:07:40 瀏覽:963
壓縮皇冠 發布:2025-01-16 01:51:27 瀏覽:274
全鍵盤編程鍵盤 發布:2025-01-16 01:38:59 瀏覽:422
尾貨棉服直播間腳本 發布:2025-01-16 01:21:45 瀏覽:228