2009-03-03 10 views
62

Necesito reemplazar todas las etiquetas iframe, almacenadas como nvarchar en mi base de datos. No puedo encontrar las entradas utilizando el siguiente código SQL-pregunta:Buscar y reemplazar parte de una cadena en la base de datos

SELECT * FROM databasename..VersionedFields WHERE Value LIKE '%<iframe%' 

decir que quiero reemplazar el siguiente segmento de código:

code before iframe <iframe src="yadayada"> </iframe> code after iframe 

Con esta:

code before iframe <a>iframe src="yadayada"</a> code after iframe 

Respuesta

82

creo que 2 llamadas de actualización deben hacer

update VersionedFields 
set Value = replace(value,'<iframe','<a><iframe') 

update VersionedFields 
set Value = replace(value,'> </iframe>','</a>') 
+0

Solo una nota, hay parece ser un carácter de sintaxis faltante Debería ser: 'establecer Valor = reemplazar (valor, '

+0

gracias @JRadtheBad - actualizado ahora – kristof

0

yo consideraría la escritura una función de reemplazo CLR con soporte RegEx para este tipo de manipulación de cadenas.

95

Usted puede hacerlo con una instrucción UPDATE establecer el valor con un reemplazo

UPDATE 
    Table 
SET 
    Column = Replace(Column, 'find value', 'replacement value') 
WHERE 
    xxx 

Usted tendrá que tener mucho cuidado al hacer esto! Recomiendo hacer una copia de seguridad primero.

+0

[aquí] (http://www.mydigitallife.info/how-to-find-and-replace- text-in-mysql-database-using-sql /) hay más información al respecto –

+0

Para los tipos de datos 'text' o 'ntext' ver: http://stackoverflow.com/a/4341677/2049986 –

13
update VersionedFields 
set Value = replace(replace(value,'<iframe','<a>iframe'), '> </iframe>','</a>') 

y lo hace en una sola pasada.

4

Me acabo de enfrentar con un problema similar. Exporté el contenido de la base de datos en un archivo sql y usé TextEdit para buscar y reemplazar todo lo que necesitaba. Simplicity ftw!

+0

Eres el hombre más inteligente aquí Haré esto: D – ucefkh

-1

base de datos de actualización y Conjunto fieldName = Reemplazar (fieldName, 'FindString', 'ReplaceString')

Cuestiones relacionadas