Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

cambiar valor de registro mediante consulta SQL

Estas en el tema de cambiar valor de registro mediante consulta SQL en el foro de Bases de Datos General en Foros del Web. Saludos: Muy breve. Tengo una tabla llamada nuke_users con un campo llamado user_lang Quisiera cambiar los valores que tienen para que todos tuvieran el valor ...
  #1 (permalink)  
Antiguo 12/12/2003, 22:47
Avatar de Jokin  
Fecha de Ingreso: enero-2002
Mensajes: 725
Antigüedad: 22 años, 3 meses
Puntos: 1
cambiar valor de registro mediante consulta SQL

Saludos:

Muy breve.
Tengo una tabla llamada nuke_users con un campo llamado user_lang

Quisiera cambiar los valores que tienen para que todos tuvieran el valor spanish

nuke_users
-----user_lang
---------todos el valor spanish


Creo que se hace con UPDATE pero no se su sintaxis .

Gracias y un saludo
__________________
  #2 (permalink)  
Antiguo 13/12/2003, 05:12
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola, jokin2.

Sería algo así:

UPDATE nuke_users SET user_lang='spanish'

Espero que te sirva. Saludos,
  #3 (permalink)  
Antiguo 14/12/2003, 10:19
Avatar de Jokin  
Fecha de Ingreso: enero-2002
Mensajes: 725
Antigüedad: 22 años, 3 meses
Puntos: 1
Gracias Javier, ahora mismo lo pruebo

un saludo
__________________
  #4 (permalink)  
Antiguo 14/12/2003, 20:12
Avatar de Jokin  
Fecha de Ingreso: enero-2002
Mensajes: 725
Antigüedad: 22 años, 3 meses
Puntos: 1
Fantástico!! Problema solucionado.

Mil gracias. Un saludo
__________________
  #5 (permalink)  
Antiguo 15/12/2003, 08:20
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
No las merece.

Saludos,
  #6 (permalink)  
Antiguo 21/12/2003, 19:22
Avatar de Jokin  
Fecha de Ingreso: enero-2002
Mensajes: 725
Antigüedad: 22 años, 3 meses
Puntos: 1
Saludos JavierB:

..y si no es mucha molestia....cual sería la consulta SQL para lo siguiente?

Tabla: nuke_bbposts_text
Campo: post_text

Buscar todos los [img]/uploaded

Reemplazar por [img]http://www.abcmusicos.com/uploaded

UPDATE ....

Gracias y un saludo
__________________
  #7 (permalink)  
Antiguo 22/12/2003, 02:28
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola, jokin2.

Te contesto de memoria, así que espero no equivocarme mucho:

UPDATE nuke_bbposts_text SET post_text='[img]http://www.abcmusicos.com/uploaded' WHERE post_text='[img]/uploaded'

Espero que te sirva. Saludos,
  #8 (permalink)  
Antiguo 22/12/2003, 03:33
Avatar de Jokin  
Fecha de Ingreso: enero-2002
Mensajes: 725
Antigüedad: 22 años, 3 meses
Puntos: 1
Gracias por tu pronta respuesta JavierB.

Desde mi ignorancia, si me permites, esa sentencia sólo buscaría los registros que tuvieran todo el campo como '[img]http://www.abcmusicos.com/uploaded' y la idea es que busque en todo el registro (es un campo equivalente al MEMO de Access) por si dentro de éste existe un parte que coincida con '[img]http://www.abcmusicos.com/uploaded' y lo cambie por '[img]/uploaded'.

O, como me dices también funcionará? (son casi 18.000 registros en los que tiene que mirar y cambiar y no quisiera meter la pata...)

No se si me he explicado bien, como tampoco me expliqué del todo bien antes.... .

Si me lo confirmas, acto seguido, allí que va la consulta SQL

Un saludo
__________________
  #9 (permalink)  
Antiguo 22/12/2003, 09:25
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Podrías intentar lo siguiente:
Código PHP:
UPDATE nuke_bbposts_text SET post_text 
REPLACE(post_text'[img]http://www.abcmusicos.com/uploaded''[img]/uploaded'
No hay necesidad de ponerle una condición WHERE ya que si encuentra reemplaza y si no encuentra, deja el mismo valor.

Nota: Hace esto en una copia de la BD por si acaso falla. Otra cosa, la respuesta que te estoy dando es para MySQL, si usas otra BD, buscate alguna función similar al replace.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #10 (permalink)  
Antiguo 22/12/2003, 18:49
Avatar de Jokin  
Fecha de Ingreso: enero-2002
Mensajes: 725
Antigüedad: 22 años, 3 meses
Puntos: 1
Saludos BrujoNic:

he realizado tu consulta y me dice:

Filas afectadas: 0 (La consulta tardó 0.0932 seg)


El campo post_text es un campo text donde se almacenan preguntas y respuestas de un foro. En este me puedo encontrar registros como...:

"Saludos: Quiero esto [img]/uploaded/abcmusicos/uno.gif[/img] y no lo encuentro por ningún lado"

y necesito que sea:

"Saludos: Quiero esto [img]http://www.abcmusicos.com/uploaded/abcmusicos/uno.gif[/img] y no lo encuentro por ningún lado"

...por eso estoy queriendo hacer dicha consulta pero lo que me indicaís creo que solo hace si el registro completo es igua a img]/uploaded

...o estoy equivocado?

Un saludo
__________________
  #11 (permalink)  
Antiguo 23/12/2003, 02:52
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola, jokin2.

Pues si, el código que puse en mi último mensaje funciona si el registro coincide exactamente con el texto. Para buscar registros que contengan cierto texto puedes usar:

WHERE post_text LIKE '%[img]/uploaded%'

Dependiendo de la base de datos que uses, en lugar de % puede que tengas que poner *

Lo que no se es como hacer para cambiar esa parte del texto En cualquier caso ten muy en cuenta el consejo de BrujoNic, create una base de datos pequeña para hacer pruebas, porque si se te estropean 18000 registros, menuda faena.

Suerte. Saludos,
  #12 (permalink)  
Antiguo 23/12/2003, 06:09
Avatar de Jokin  
Fecha de Ingreso: enero-2002
Mensajes: 725
Antigüedad: 22 años, 3 meses
Puntos: 1
Saludos:

Antes de nada, comentaros que la base de datos está en MySQL.

Así que tengo estás dos opciones:

UPDATE nuke_bbposts_text SET post_text =
REPLACE(post_text, '[img]http://www.abcmusicos.com/uploaded', '[img]/uploaded')

UPDATE nuke_bbposts_text SET post_text='[img]http://www.abcmusicos.com/uploaded' WHERE post_text='[img]/uploaded'

...pero para buscar dentro del registro, he de poner...


WHERE post_text LIKE '%[img]/uploaded%'

...el problema entonces, es como unir esto y decirle que en el mismo sitio que está [img]/uploaded coloque [img]http://www.abcmusicos.com/uploaded

Puf!! esto ya es para expertos en consultas SQL!!

Es posible generar una consulta que lo haga?

A ver si BrujoNic u otro me ayuda....

Mil gracias.

Un saludo

__________________

Última edición por Jokin; 23/12/2003 a las 06:14
  #13 (permalink)  
Antiguo 23/12/2003, 11:06
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Pues no comprendo que te está fallando ya que hice una prueba creando un tabla con 2 campos (uno autoincremental y otro TEXT) luego incluí un registro incluyendo en el campo TEXT una frase de 3 párrafos y entre estos, lo que deseas reemplazar [img]http://www.abcmusicos.com/uploaded. Luego ejecuté la consulta de esta forma:
Código PHP:
UPDATE pruebaM SET
texto 

REPLACE(texto'[img]http://www.abcmusicos.com/uploaded''[img]/uploaded'
Me reemplazó perfectamente y estoy usando MySQL.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #14 (permalink)  
Antiguo 23/12/2003, 15:06
Avatar de Jokin  
Fecha de Ingreso: enero-2002
Mensajes: 725
Antigüedad: 22 años, 3 meses
Puntos: 1
...vaya, pues la debo tener negra....

Lo pienso mirar otra vez, porque por mis **** que lo consigo cambiar

Muchas gracias BrujoNic y a tí también JavierB

Da gusto pasarse por forosdelweb y saber que hay gente dispuesta a ayudarte.

Un saludo
__________________
  #15 (permalink)  
Antiguo 27/12/2003, 06:15
Avatar de Jokin  
Fecha de Ingreso: enero-2002
Mensajes: 725
Antigüedad: 22 años, 3 meses
Puntos: 1
Muchas gracias funcionó a la perfección!!!
__________________
  #16 (permalink)  
Antiguo 27/12/2003, 06:25
Avatar de Jokin  
Fecha de Ingreso: enero-2002
Mensajes: 725
Antigüedad: 22 años, 3 meses
Puntos: 1
...esto....quizá sea pedir demasiado....pero necesito "rizar el rizo" . Es la única forma de que en nuestros foros podamos ver las imágenes que en su día subieron los usuarios de nuestra comunidad. Está muy muy complicado.

Tabla: nuke_bbposts_text
Campos a tener en cuenta: bbcode_uid (varchar(10) )y post_text (text )

*********************************************

La sentencia en castellano puro y duro es:

1.- Si en el campo post_text de la tabla nuke_bbposts_text existe algún texto como este: [img]http://www.abcmusicos.com cambiarlo por [img:123456]http://www.abcmusicos.com

2.- Si la anterior consulta es verdadera, vamos que si se hace la modificación de arriba, han de hacerse estas dos también.

En el campo post_text de la tabla nuke_bbposts_text cambiar [/img] por [/img:123456]

en el campo bbcode_uid de la tabla nuke_bbposts_text insertar el valor 123456

Difícil, no? Poco menos que realizar una aplicación para conseguir este cambio , pero por pedir ayuda que no quede .

Gracias y un saludo a todos
__________________
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:58.