programing

MySQL - 열의 문자 바꾸기

randomtip 2023. 1. 5. 23:57
반응형

MySQL - 열의 문자 바꾸기

독학으로 배운 신참인 나는 스스로 큰 문제를 만들었다.데이터베이스에 데이터를 삽입하기 전에 문자열 내의 아포스트로피(')를 필수 백슬래시와 아포스트로피(\') 대신 큰따옴표("")로 변환했습니다.

테이블이 이미 200,000 행보다 커지기 전에 이 문제를 즉시 수정하는 것이 최선이라고 생각했습니다.그래서 몇 가지 조사를 해봤더니 SQL REPLACE 기능이 훌륭하다는 것을 알게 되었습니다만, 지금은 혼란스럽습니다.

ASP에서는, 다음과 같이 하고 있었습니다.

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

SQL Workbench의 데이터베이스를 보면 변환한 기호가 단일 따옴표("")로 되어 있어 조금 혼란스러웠습니다.왜 더블에서 싱글로 바뀌었는지 알겠는데, 지금 어떤 걸 바꿔야 할지 모르겠어요.

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줄이야.

-- UPDATE 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에 문자열 식을 등록하는 따옴표이기 때문에 사용합니다.

도움이 됐으면 좋겠다.

"something"이 있고 "something"이 필요한 경우replace(col, "\"", "\'")그리고 역도 성립.

언급URL : https://stackoverflow.com/questions/7734077/mysql-replace-character-in-columns

반응형