MySQL – Reemplazar el Carácter en Columnas

Ser un autodidacta novato, he creado un gran problema para mí. Antes de insertar los datos en mi base de datos, he sido la conversión de los apóstrofes (‘) en una cadena, comillas dobles («»), en lugar de la barra inclinada y el apóstrofo (\’), que MySQL realmente necesita.

Antes de mi mesa crece más de los 200.000 filas ya está, pensé que era mejor para rectificar este problema de inmediato. Así que hice un poco de investigación y encontrar el SQL REEMPLAZAR la función, lo cual es genial, pero ahora estoy confundido.

En ASP, yo estaba haciendo esto:

str = Replace(str,"'","""")

Si miro a mi base de datos en SQL Workbench, el símbolo que me he convertido ahora es una comilla («), que tiene que me confunde un poco. Entiendo por qué cambió de doble para una sola, pero no sé que estoy destinado a estar cambiando ahora.

Para ir a través y rectificar mi problema con SQL REEMPLAZAR, cómo puedo convertir de comillas simples («) de back-slash y apóstrofos (\’) o hago para convertir entre comillas dobles («») para back-slash y apóstrofos (\’)?

Por ejemplo, este:

SQL = " SELECT REPLACE(myColumn,"""","\'") FROM myTable "

o este:

SQL = " SELECT REPLACE(myColumn,""","\'") FROM myTable "

Espero haberme explicado bien, cualquier sugerencia agradece como siempre. Cualquier consulta acerca de mi pregunta, por favor deje un comentario.

Muchas gracias

— UPDATE —

He probado las siguientes consultas, pero todavía no cambie el ( «» ) en los datos:

SELECT REPLACE(caption,'\"','\'') FROM photos WHERE photoID = 3371
SELECT REPLACE(caption,'"','\'') FROM photos WHERE photoID = 3371
SELECT REPLACE(caption,'""','\'') FROM photos WHERE photoID = 3371

Sin embargo, si que la búsqueda:

SELECT COUNT(*) FROM photos WHERE caption LIKE '%"%'

Puedo obtener 16,150 filas.

— UPDATE 2 —

Bien, he creado una ‘solución’. Me las arreglé para convertir a toda una columna con bastante rapidez escribir una secuencia de comandos ASP, el uso de este SQL:

SELECT photoID, caption FROM photos WHERE caption LIKE '%""%';

y, a continuación, en ASP yo:

caption = Replace(caption,"""","\'")

Pero todavía me gustaría saber por qué no podía lograr que con SQL?

  • Usted realmente necesita para leer sobre el uso de Paramaterized consultas. Esto le impiden hacer su aplicación vulnerable a Inyección SQL
  • Tenga en cuenta que en ASP, utilizando """" se representa como un valor de una comilla simple ("), no una comilla doble (""), porque dentro de una cadena, una cita a la que representa (escapado) por dos comillas.
  • Que es el siguiente en mi lista para aprender a Juan, sí. Tengo una expresión regular de la función que comprueba los valores de entrada y cadenas de consulta de contenido malicioso, pero estoy seguro de que no es seguro…
  • Gracias mellamokb pero como dije en mi pregunta, yo no entiendo por qué han cambiado las comillas simples. Lo que ahora necesito saber, es cómo me hagan referencia a ellos en la función de reemplazar. Qué debo hacer para cambiar dobles o singles ahora?
InformationsquelleAutor TheCarver | 2011-10-12

4 Kommentare

  1. 127

    Simplemente ejecutar la SELECT declaración no tendrá ningún efecto sobre los datos. Usted tiene que usar un UPDATE declaración con la REPLACE para hacer que el cambio ocurra:

    UPDATE photos
       SET caption = REPLACE(caption,'"','\'')

    Aquí es una muestra de trabajo: http://sqlize.com/7FjtEyeLAh

    • Muchas gracias!! Lo tengo ahora, seleccione imprima la conversión, pero la actualización será en realidad la actualización de la base de datos…
    • Ya lo tienes!
    • Para comprobar sin DB cambiar, probar antes: SELECT * FROM photos WHERE LOCATE('"','\')>0
    • Esto no debería ser aceptado responder más… REEMPLAZAR la función funciona correctamente en MySQL
  2. 13

    Reemplazar por debajo de caracteres

    ~ ! @ # $ % ^ & * ( ) _ +
    ` - = 
    { } |
    [ ] \
    : " 
    ; '
    
    < > ?
    , . 

    con SQL

    SELECT note as note_original, 
    
        REPLACE(
            REPLACE(
                REPLACE(
                    REPLACE(
                        REPLACE(
                            REPLACE(
                                REPLACE(
                                    REPLACE(
                                        REPLACE(
                                            REPLACE(
                                                REPLACE(
                                                    REPLACE(
                                                        REPLACE(
                                                            REPLACE(
                                                                REPLACE(
                                                                    REPLACE(
                                                                        REPLACE(
                                                                            REPLACE(
                                                                                REPLACE(
                                                                                    REPLACE(
                                                                                        REPLACE(
                                                                                            REPLACE(
                                                                                                REPLACE(
                                                                                                    REPLACE(
                                                                                                        REPLACE(
                                                                                                            REPLACE(
                                                                        REPLACE(
                                                                            REPLACE(
                                                                                REPLACE(
                                                                                    REPLACE(
                                                                                        REPLACE(
                                                                                            REPLACE(
                                                                                                REPLACE(note, '\"', ''),
                                                                                            '.', ''),
                                                                                        '?', ''),
                                                                                    '`', ''),
                                                                                '<', ''),
                                                                            '=', ''),
                                                                        '{', ''),
                                                                                                            '}', ''),
                                                                                                        '[', ''),
                                                                                                    ']', ''),
                                                                                                '|', ''),
                                                                                            '\'', ''),
                                                                                        ':', ''),
                                                                                    ';', ''),
                                                                                '~', ''),
                                                                            '!', ''),
                                                                        '@', ''),
                                                                    '#', ''),
                                                                '$', ''),
                                                            '%', ''),
                                                        '^', ''),
                                                    '&', ''),
                                                '*', ''),
                                            '_', ''),
                                        '+', ''),
                                    ',', ''),
                                '/', ''),
                            '(', ''),
                        ')', ''),
                    '-', ''),
                '>', ''),
            ' ', '-'),
        '--', '-') as note_changed FROM invheader
    • impresionante… uno debe guardar es 🙂
    • ⁣⁣⁣(⁣⁣⁣⊙⁣⁣⁣.⁣⁣⁣☉⁣⁣⁣)⁣⁣⁣⁣⁣
    • Gracias, Omar existir!
    • OMG eres el mejor chico en stackoverflow! La respuesta a esto es increíble, gracias a Dios yo lo leí, y ahora mi vida es diferente y más feliz
  3. 3

    que tal vez me gustaría ir por este.

     SQL = SELECT REPLACE(myColumn, '""', '\'') FROM myTable

    He utilizado singlequotes porque esa es la que registra las expresiones de cadena en MySQL, o eso creo.

    Espero que ayude.

    • Me encontré esto en una fila, comprueba la fila después y todavía tenía ( » ). Estoy editando mi pregunta para mostrar que las otras variaciones he intentado
    • ¿el título tiene otros valores, otras de las citas?
    • Ejemplo de título [Brad Pitt viste a Angelina Jolie»s bikini]
  4. 0

    Si tiene «algo» y la necesidad de «algo», el uso de replace(col, "\"", "\'") y viceversa.

    • Que no trabajo, me encontré en una fila, comprueba la fila y todavía contiene ( » )
    • SUBSTRING(datos, 1, LEN(datos)) -no estoy seguro de si es el 1 o el 2 en el parámetro, pero esto va a cortar el primer y el último caracter de una cadena, de modo que «lo que sea» o «aquello», debe de salida como lo que sea.
    • No es bueno por desgracia, he de datos como [Kate Moss s], [O’Sullivan] y [‘lo que sea’]

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Recent Articles

Python «set» con duplicados/elementos repetidos

Hay una forma estándar de representar un "conjunto" que puede contener elementos duplicados. Como yo lo entiendo, un conjunto tiene exactamente un cero o...

Python: generador de expresión vs rendimiento

En Python, ¿hay alguna diferencia entre la creación de un generador de objetos a través de un generador de expresión versus el uso de...

Cómo exportar/importar la Masilla lista de sesiones?

Hay una manera de hacer esto? O tengo que tomar manualmente cada archivo de Registro? InformationsquelleAutor s.webbandit | 2012-10-23

no distingue mayúsculas de minúsculas coincidentes en xpath?

Por ejemplo, para el xml a continuación <CATALOG> <CD title="Empire Burlesque"/> <CD title="empire burlesque"/> <CD...