복붙노트

[SQL] MySQL은 - 열에서 문자를 교체

SQL

MySQL은 - 열에서 문자를 교체

독학으로 초보자이기 때문에, 나는 나 자신을 위해 큰 문제를 만들었습니다. 내 데이터베이스에 데이터를 삽입하기 전에, 나는 '(MySQL이 실제로 필요로 큰 따옴표 ( ""), 대신 필요한 백 슬래시와 아포스트로피 \)로 문자열에 아포스트로피 ()'로 변환했습니다.

내 표는 더는 이미 20 만 행보다 성장 전에, 나는 즉시이 문제를 해결하는 것이 최선이라고 생각. 그래서 몇 가지 연구를하고 SQL이 큰 기능을 대체 찾았지만 지금은 혼란스러워하고 있습니다.

ASP, 나는이 일을했다 :

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

나는 SQL 워크 벤치에서 내 데이터베이스 보면, 내가 변환 된 심볼은 지금 나에게 약간의 혼란 한 따옴표 ( ")입니다. 그것은 하나의 이중 변경 이유를 이해하지만, 내가 어느 내가 모르는 ' m은 지금 변화하는 것을 의미했다.

통과 및 SQL을 대체하여 내 문제를 해결, 지금은 작은 따옴표 ( ")로 변환 할 백 슬래시와 아포스트로피 (\ ')에 또는 내가 큰 따옴표로 변환 할 백 슬래시와 아포스트로피에를 (" ") (\'하려면) ?

예를 들어,이 :

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

아니면 이거:

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

나는 나 자신이 아니라, 어떤 제안은 감사 항상로받은 설명 바랍니다. 내 질문에 대한 모든 쿼리, 코멘트를하시기 바랍니다.

많은 감사

- UPDATE -

나는 다음과 같은 쿼리를 시도했지만 여전히 ( ") 데이터에 변경하는 데 실패했습니다 :

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

그러나 나는 검색하는 경우 :

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

나는 16,150 행을 얻을.

- 업데이트 2 -

글쎄, 난 '해결'을 만들었습니다. 나는, ASP 스크립트를 작성이 SQL을 사용하여 꽤 빨리 전체 열을 변환 관리 :

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

다음 ASP I에서했던 :

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

나는 SQL과 그것을 달성 할 수없는 이유 그러나 나는 알고 계속 하시겠습니까?

해결법

  1. ==============================

    1.그냥 SELECT 문을 실행하면 데이터에 영향을주지 않습니다. 당신은이 변화가 발생하게 교체와 UPDATE 문을 사용해야합니다 :

    그냥 SELECT 문을 실행하면 데이터에 영향을주지 않습니다. 당신은이 변화가 발생하게 교체와 UPDATE 문을 사용해야합니다 :

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

    여기에 작업 예제는 다음과 같습니다 http://sqlize.com/7FjtEyeLAh

  2. ==============================

    2.아래의 문자를 교체

    아래의 문자를 교체

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

    이 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
    
  3. ==============================

    3.어쩌면 나는이로 갈 것.

    어쩌면 나는이로 갈 것.

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

    그게 내가 생각 MySQL은 레지스터 문자열 식 또는 있도록하는 일이기 때문에 나는 singlequotes을 사용했다.

    희망이 도움이.

  4. ==============================

    4.당신이 "뭔가"하고 필요로하는 '무언가'가있는 경우, 사용 (COL을 "\" ","\ ' ") 교체하고 그 반대를 반대.

    당신이 "뭔가"하고 필요로하는 '무언가'가있는 경우, 사용 (COL을 "\" ","\ ' ") 교체하고 그 반대를 반대.

  5. from https://stackoverflow.com/questions/7734077/mysql-replace-character-in-columns by cc-by-sa and MIT license