programing

MYSql의 새 줄 문자 바꾸기가 작동하지 않습니다.

minimums 2023. 10. 5. 21:26
반응형

MYSql의 새 줄 문자 바꾸기가 작동하지 않습니다.

나는 다음 쿼리를 실행했는데 어떤 이유로 데이터베이스의 새 줄 문자를 대체하지 않습니다.행은 1과 일치하지만 변화가 없다고 표시됩니다.무엇이 잘못될 수 있습니까?

mysql> UPDATE aboutme SET abouttext=REPLACE(abouttext,'\\n','') WHERE userid='5099a95cd944b8.22468149';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0

다음을 사용하여 새 줄 문자를 일치시킬 수 있습니다.\n,것은 아니다.\\n.

코드:

 UPDATE aboutme 
 SET abouttext=REPLACE(abouttext,'\n','') 
 WHERE userid='5099a95cd944b8.22468149';

한다면\n나의 경우와 같이 작동하지 않습니다, 다음이 작동했습니다.\r\n

UPDATE aboutme 
SET abouttext=REPLACE(abouttext,'\r\n','') 
WHERE userid='5099a95cd944b8.22468149';

제 경우에는 웹 애플리케이션이었습니다.

당신은 그것이 그 안에\n, 하지만 있습니다.\r.

update [Table] set [column]=replace(convert([column] using utf8) ,'\r','');

사용자의 경우:

update aboutme set abouttext=replace(convert(abouttext using utf8) ,'\r','');

저에게 도움이 된 것은 이것을 사용하는 것뿐이었습니다.

UPDATE aboutme SET abouttext = REPLACE(REPLACE(abouttext, CHAR(13), ''), CHAR(10), '') WHERE userid='5099a95cd944b8.22468149';

Ryan's 솔루션을 사용하는 것은 아무것도 업데이트하지 않았지만 MySQL 출력 포맷을 엉망으로 만들고 있었습니다.

이런 일이 벌어집니다.

mysql> mysql> select * from t1 limit 3;
+----------+------------+-----------+---------------------+
| actor_id | first_name | last_name | last_update         |
+----------+------------+-----------+---------------------+
|        1 | PENELOPE   | GUINESS   | 2006-02-15 04:34:33 |
|        2 | NICK       | WAHLBERG  | 2006-02-15 04:34:33 |
|        3 | ED         | CHASE     | 2006-02-15 04:34:33 |
+----------+------------+-----------+---------------------+
3 rows in set (0.00 sec)

mysql> update t1 set first_name=replace(first_name,'abc','') where first_name='ed';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 10  Changed: 0  Warnings: 0

mysql> select * from t1 limit 3;
+----------+------------+-----------+---------------------+
| actor_id | first_name | last_name | last_update         |
+----------+------------+-----------+---------------------+
|        1 | PENELOPE   | GUINESS   | 2006-02-15 04:34:33 |
|        2 | NICK       | WAHLBERG  | 2006-02-15 04:34:33 |
|        3 | ED         | CHASE     | 2006-02-15 04:34:33 |
+----------+------------+-----------+---------------------+
3 rows in set (0.00 sec)


mysql> update t1 set first_name=replace(first_name,'ED','EDD') where first_name='ed';
Query OK, 10 rows affected (0.00 sec)
Rows matched: 10  Changed: 10  Warnings: 0

mysql> select * from t1 limit 3;
+----------+------------+-----------+---------------------+
| actor_id | first_name | last_name | last_update         |
+----------+------------+-----------+---------------------+
|        1 | PENELOPE   | GUINESS   | 2006-02-15 04:34:33 |
|        2 | NICK       | WAHLBERG  | 2006-02-15 04:34:33 |
|        3 | EDD        | CHASE     | 2006-02-15 04:34:33 |
+----------+------------+-----------+---------------------+

3 rows in set (0.00 sec)

제 말은 작동하는 위치 조건 때문에 '행 일치: 1'이 있지만 대체자가 찾을 수 없다는 것입니다.\\n대체할 수 있는 이유는changed: 0당신의 테이블 데이터를 확인해 보세요.

REFREENT 기능은 대소문자를 구분합니다. MySql 서버 버전에 속한다고 생각합니다.

설명=REACENT(description, 'Videosite', 'video.5la.net ')는 description=과 다른 결과입니다.REACENT(설명, 'VideoSite', 'video.5la.net ')

그와 같은 것을 시도해 보세요.

REPLACE(REPLACE(text, CHAR(92), '#'), '#n', ' ')

언급URL : https://stackoverflow.com/questions/13273343/replace-new-line-character-in-mysql-not-working

반응형