我的數據庫表中有一列有文本低和行低的列。在文本中,每行都需要更改一個url。在每一行中,url可以存在多次。替換文本字段中的字符串
我可以使用替換函數來更改數據庫表中文本字段中的所有URL而不影響同一列中的其餘文本?
感謝
我的數據庫表中有一列有文本低和行低的列。在文本中,每行都需要更改一個url。在每一行中,url可以存在多次。替換文本字段中的字符串
我可以使用替換函數來更改數據庫表中文本字段中的所有URL而不影響同一列中的其餘文本?
感謝
使用replace()
製作精確的距離:像http://url_from.com/到http://url_to.com/
我懷疑所有的網址都是一樣的 – 2010-08-20 08:31:08
如果包含字符串的列是col1,並且我想將字符串'hello'更改爲'bye',我將如何更改該查詢? – oshirowanen 2010-08-20 08:33:37
如果不是全部相同,則可以使用第三方功能regex_replace: http://www.php-groupies.de/blogs/archives/17-Regular-Expression-Functions-for-MySQL.html – cichy 2010-08-20 08:34:21
我需要寫一個查找和在文本字段中替換爲CHAR(146)`。上面的文章爲fort nText和文本使用nText的相同的解決方案與以下更改: - VARCHAR(32)nVARCHAR(32) - 使用@lenOldString = DATALENGTH(@oldString),而不是SET @lenOldString = DATALENGTH(@ oldString)/ 2。
DECLARE @TextPointer BINARY(16), @TextIndex INT, @oldString VARCHAR(32), @newString VARCHAR(32), @lenOldString INT, @currentDataID INT;
SET @oldString ='''; SET @newString ='''';
IF CHARINDEX(@oldString,@newString) BEGIN PRINT '退出,以避免無限循環。'; END ELSE BEGIN
--Need的爲n文字字段 --set @lenOldString = DATALENGTH(@oldString)/ 2
--use這個文本字段 SET @lenOldString = DATALENGTH(@ oldString)
DECLARE irows CURSOR LOCAL FORWARD_ONLY STATIC READ_ONLY爲 選擇 數據ID FROM dbo.tbData WHERE PATINDEX('%'+ @ oldString +'%',TextData)> 0;
OPEN irows;
FETCH NEXT FROM IROW INTO @currentDataID; WHILE(@@ FETCH_STATUS = 0) BEGIN
SELECT @TextPointer = TEXTPTR(的TextData) @TextIndex = PATINDEX( '%' + @ oldString + '%',的TextData) FROM DBO。tbData WHERE DataID = @currentDataID;
SELECT @TextPointer,@TextIndex
WHILE ( SELECT PATINDEX( '%' + @ oldString + '%',的TextData) FROM dbo.tbData WHERE 數據ID = @currentDataID ) BEGIN
SELECT @TextIndex = PATINDEX( '%' + @ oldString + '%',的TextData)-1- FROM dbo.tbData WHERE DataID = @currentDataID;
UPDATETEXT dbo.tbData.TextData @TextPointer @TextIndex @lenOldString @newString; END FETCH NEXT FROM IROW INTO @currentDataID; END
CLOSE irows; DEALLOCATE irows;
END
這些網址是什麼?它指向一些本地資源還是指向一些外國站點? – 2010-08-20 08:31:47