MariaDB 구문 오류 없이 치환하는 방법
SQL의 치환 예를 참조하십시오.
MySQL/MariaDB 데이터베이스:
UPDATE wp_posts SET post_content = REPLACE(post_content, ' ', ' ');
... 단, 이 스테이트먼트는 에러를 발생시킵니다.
#1064 - You have an error in your SQL syntax; check the manual that
corresponds to your MariaDB server version for the right syntax to
use near '' )' at line 1
아, 그렇군요.''
그리고.)'
- 백슬래시로 세미콜론을 탈출하려고 했습니다.\
:
UPDATE wp_posts SET post_content = REPLACE(post_content, ' \;', ' ');
...하지만 거의 같은 오류를 얻습니다.실제로 MySQL/MariaDB의 SQL 예는 많이 볼 수 있지만 세미콜론이나 앰퍼샌드 중 어느 쪽도 이스케이프되지 않습니다.
편집
@Barmar는 명령줄에서 SQL을 실행할 것을 권장합니다.MariaDB에 로그인하여 use mydatabase를 입력했습니다.프롬프트가 현재 db로 바뀌어 위와 같이 명령어를 입력했습니다.이 명령어는 오류 없이 받아들여졌으며, 2300개 이상의 일치가 발견되었지만 아무것도 변경되지 않았습니다.
MariaDB [mydatabase]> UPDATE wp_posts SET post_content = REPLACE(post_content, 'Â ', ' ');
Query OK, 0 rows affected (0.25 sec)
Rows matched: 2330 Changed: 0 Warnings: 0
왜 아무것도 바뀌지 않았지?
편집 - 포함 위치
점점 더 혼란스러워지고 있어요.phpMyAdmin 내에서:
SELECT * from wp_posts WHERE post_content LIKE '%Â %';
<<== 1715 행을 반환합니다.
또한 phpMyAdmin:
UPDATE wp_posts SET post_content = REPLACE(post_content, 'Â ', ' ') WHERE post_content LIKE '%Â %';
<<== 일치하는 행 0개를 반환합니다.
CLI에서:
SELECT COUNT(*) from wp_posts WHERE post_content LIKE 'Â ';
<<== 0을 반환함
SELECT COUNT(*) from wp_posts WHERE post_content LIKE 'Â';
<<== 8을 반환한다
나는 이 차이점들을 어떻게 생각해야 할지 전혀 모르겠다.확실히 그 펑키는 알아Â
wp_discloss 전체에 존재합니다.phpMyAdmin을 사용하여 데이터를 확인할 수 있습니다.
'Â '
당신이 생각하는 그런 문제가 아니라고 믿게 만들어요
디버깅 실행, 실행SELECT HEX(col)...
수정하려고 하는 소스 회선 중 하나에 대한 것입니다.찾을 수 있을 것이다.C2A0
16진수 문자열에 입력됩니다.이것이 utf8 부호화입니다.
htmlentity를 사용하는 경우
문자 집합에도 문제가 있을 수 있습니다.phpmyadmin에서 유효한 설정을 확인해 주세요.SHOW VARIABLES LIKE 'char%';
; 및SHOW CREATE TABLE
latin1 사이에 혼동이 있을 수 있기 때문에 요청드립니다.A0
및 UTF-8C2A0
혼란이 가중되고 있습니다.
많은 상황에서 '하드 스페이스'(16진수)A0
)는, 통상의 공간(표준)처럼 보입니다.20
무엇이 무엇인지 결정하는 것이 더욱 어려워집니다.
요약:
- 다음 웹 사이트를 통해 실제 기능을 확인하세요.
SELECT HEX()
- 설정 수정 - latin1을 끝까지 사용하거나 utf8/utf8mb4를 끝까지 사용합니다.
- 그런 다음 교체 방법을 다시 생각해 보십시오(2단계에서 수정되지 않은 경우).
나는 주로 본다A0
Microsoft Word 문서에서 가져오지만 다른 소스가 있을 수 있습니다.
latin1로 잘못 해석된 경우 utf8은C2A0
로서 나타나다Â
(A-circumflex와 공백).
언급URL : https://stackoverflow.com/questions/56067765/how-to-replace-nbsp-without-mariadb-syntax-error
'sourcecode' 카테고리의 다른 글
Django ModelForm에서 ForeignKey 선택을 필터링하려면 어떻게 해야 합니까? (0) | 2022.09.23 |
---|---|
MySQL에서 변수를 선언하는 방법 (0) | 2022.09.23 |
Galera 클러스터에서는 놀라울 정도로 낮은 퍼포먼스 (0) | 2022.09.22 |
MySQL에서 테이블 이름이 변수인 경우 선택하는 방법 (0) | 2022.09.22 |
String.replace모든 단일 백슬래시를 이중 백슬래시로 바꿉니다. (0) | 2022.09.22 |