我的数据库表中有一列有文本低和行低的列。在文本中,每行都需要更改一个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