[SQL] MySQL은 - 열에서 문자를 교체
SQLMySQL은 - 열에서 문자를 교체
독학으로 초보자이기 때문에, 나는 나 자신을 위해 큰 문제를 만들었습니다. 내 데이터베이스에 데이터를 삽입하기 전에, 나는 '(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.그냥 SELECT 문을 실행하면 데이터에 영향을주지 않습니다. 당신은이 변화가 발생하게 교체와 UPDATE 문을 사용해야합니다 :
그냥 SELECT 문을 실행하면 데이터에 영향을주지 않습니다. 당신은이 변화가 발생하게 교체와 UPDATE 문을 사용해야합니다 :
UPDATE photos SET caption = REPLACE(caption,'"','\'')
여기에 작업 예제는 다음과 같습니다 http://sqlize.com/7FjtEyeLAh
-
==============================
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.어쩌면 나는이로 갈 것.
어쩌면 나는이로 갈 것.
SQL = SELECT REPLACE(myColumn, '""', '\'') FROM myTable
그게 내가 생각 MySQL은 레지스터 문자열 식 또는 있도록하는 일이기 때문에 나는 singlequotes을 사용했다.
희망이 도움이.
-
==============================
4.당신이 "뭔가"하고 필요로하는 '무언가'가있는 경우, 사용 (COL을 "\" ","\ ' ") 교체하고 그 반대를 반대.
당신이 "뭔가"하고 필요로하는 '무언가'가있는 경우, 사용 (COL을 "\" ","\ ' ") 교체하고 그 반대를 반대.
from https://stackoverflow.com/questions/7734077/mysql-replace-character-in-columns by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 측정 쿼리 성능 : VS "실행 계획 쿼리 비용" "시간은 촬영" (0) | 2020.05.08 |
---|---|
[SQL] SQL "IN"절에 튜플을 사용하여 (0) | 2020.05.08 |
[SQL] 어떻게 PostgreSQL의 쿼리에서 행 번호를 표시합니다? (0) | 2020.05.08 |
[SQL] Laravel 고급 알의 방법 함수에 변수를 전달하는 방법? (0) | 2020.05.08 |
[SQL] 정체성 대 순서 (0) | 2020.05.08 |