No estás registrado (Registrarse)

Vanilla 1.1.10 es un producto de Lussumo. Para más información: Documentación, Soporte.

    •  
      CommentAuthorDominitis
    • CommentTimeDec 14th 2017 editado
     # 1
    Estoy intando reemplazar varias palabras con acento en una base de datos pero no lo logro. Intento esta sentencia:

    UPDATE `tabla-1` SET `campo-4` = REPLACE(`campo-4`, 'avión', 'barco') WHERE `codigo` LIKE 'avión'

    me da error:
    #1064 - Algo está equivocado en su sintax cerca ''avi&oacute)' en la linea 1

    El campo-4 es del tipo varchar(255) cotejamiento utf8_general_ci por lo que al ir a la tabla-1 aparece en el campo-4 avión y no avión.
    No sé qué hacer....

    Si hago la consulta así:

    UPDATE `tabla-1` SET `campo-4` = REPLACE(`campo-4`, 'avión', 'barco') WHERE `codigo` LIKE 'avión'
    no encuentra ningún resultado

    Por otro lado si hago la búsqueda

    SELECT * FROM `es_promos` WHERE `codigo` LIKE 'avión' ORDER BY `modified_on` DESC
    Me encuentra perféctamente lo que busco. Es al intentar buscar y reemplazar que da problema.

    :que::que:
    •  
      CommentAuthorDominitis
    • CommentTimeDec 14th 2017 editado
     # 2
    Solucionado:

    He visto una forma de buscar y reemplazar y ha dado resultado

    UPDATE `es_promos` SET `codigo` = REPLACE(`codigo`, 'avión', '8888888') WHERE `codigo` LIKE '%avión%' COLLATE utf8_bin
    •  
      CommentAuthormadu
    • CommentTimeDec 14th 2017 editado
     # 3
    La base de datos no equipara ó con ó, es decir, si quieres encontrar ó busca exactamente eso (que es un código html) y no ó.
    Ten en cuenta que si la bd esta en utf8 puedes tener texto con acentos perfectamente sin parsearlos a su código html, por lo que si te quieres asegurar de que quitas todos los acentos tendrás que hacerlo tanto para ó como para ó. ( con sus %% en el like para que los encuentre dentro de todo el texto)
    •  
      CommentAuthorDominitis
    • CommentTimeDec 14th 2017
     # 4
    Gracias.
    Al buscar por %avión% ya iba bien. :bigsmile: