UFO ET IT

MySQL-열의 문자 바꾸기

ufoet 2021. 1. 17. 11:35
반응형

MySQL-열의 문자 바꾸기


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

내 테이블이 이미있는 200,000 행 이상으로 커지기 전에이 문제를 즉시 수정하는 것이 가장 좋다고 생각했습니다. 그래서 저는 약간의 조사를했고 SQL REPLACE 함수를 찾았습니다. 훌륭하지만 지금은 혼란 스럽습니다.

ASP에서는 다음과 같이했습니다.

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

SQL Workbench에서 데이터베이스를 살펴보면 변환 한 기호가 이제 작은 따옴표 ( ")로 표시되어 약간 혼란 스러웠습니다. 이중에서 단일로 변경된 이유는 이해하지만 어떤 기호인지는 모르겠습니다. m은 지금 변하고 있다는 뜻이었습니다.

SQL REPLACE를 사용하여 문제를 해결하려면 이제 작은 따옴표 ( ")를 백 슬래시와 아포스트로피 (\ ')로 변환하거나 큰 따옴표 (" ")를 백 슬래시와 아포스트로피 (\')로 변환해야합니까? ?

예를 들면 다음과 같습니다.

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

아니면 이거:

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

제가 제 자신을 잘 설명했으면 좋겠습니다. 어떤 제안이라도 언제나 감사하게 받아 들였습니다. 내 질문에 대한 질문이 있으면 의견을 보내주십시오.

많은 감사

-업데이트-

다음 쿼리를 시도했지만 여전히 데이터에서 ( ")를 변경하지 못했습니다.

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-

글쎄, 나는 '해결 방법'을 만들었습니다. 이 SQL을 사용하여 ASP 스크립트를 작성하는 전체 열을 매우 빠르게 변환 할 수있었습니다.

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

그런 다음 ASP에서 다음을 수행했습니다.

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

하지만 왜 SQL로 그것을 달성 할 수 없었는지 알고 싶습니다.


SELECT명령문을 실행하는 것만 으로는 데이터에 영향을 미치지 않습니다. 변경 사항을 적용 UPDATE하려면와 함께 문 을 사용해야 REPLACE합니다.

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

다음은 작동하는 샘플입니다. http://sqlize.com/7FjtEyeLAh


아래 문자 바꾸기

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

< > ?
, . 

이 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

아마도 나는 이것으로 갈 것입니다.

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

MySQL에서 문자열 표현식을 등록하는 작은 따옴표를 사용했거나 그렇게 믿습니다.

도움이되기를 바랍니다.


"무언가"가 있고 '무언가'가 필요한 경우 사용 replace(col, "\"", "\'")하거나 그 반대입니다.

참조 URL : https://stackoverflow.com/questions/7734077/mysql-replace-character-in-columns

반응형