programing

CONCAT 문자열이 추가된 필드의 모든 값이 작동하지 않음

sourcejob 2023. 1. 27. 21:18
반응형

CONCAT 문자열이 추가된 필드의 모든 값이 작동하지 않음

하고 싶은 일은 다음과 같습니다.

현재 테이블:

+----+-------------+  
| id | data        |  
+----+-------------+  
|  1 | max         |  
|  2 | linda       |  
|  3 | sam         |  
|  4 | henry       |  
+----+-------------+  

미스터리 쿼리(예:"UPDATE table SET data = CONCAT(data, 'a')")

결과 테이블:

+----+-------------+  
| id | data        |  
+----+-------------+  
|  1 | maxa        |  
|  2 | lindaa      |  
|  3 | sama        |  
|  4 | henrya      |  
+----+-------------+  

바로 그거야!한 번의 질문으로 하면 되는데, 방법을 찾을 수가 없어요.블루호스트에서 mySQL을 사용하고 있다(버전 4.1인 것 같다)

여러분 감사합니다.

이것으로 충분합니다.

mysql> select * from t;
+------+-------+
| id   | data  |
+------+-------+
|    1 | max   |
|    2 | linda |
|    3 | sam   |
|    4 | henry |
+------+-------+
4 rows in set (0.02 sec)

mysql> update t set data=concat(data, 'a');
Query OK, 4 rows affected (0.01 sec)
Rows matched: 4  Changed: 4  Warnings: 0

mysql> select * from t;
+------+--------+
| id   | data   |
+------+--------+
|    1 | maxa   |
|    2 | lindaa |
|    3 | sama   |
|    4 | henrya |
+------+--------+
4 rows in set (0.00 sec)

5.1.41에서 테스트 중인데 왜 문제가 생겼는지 모르겠습니다.

값이 null인 CONCAT는 null을 반환하므로 가장 쉬운 해결책은 다음과 같습니다.

업데이트 myTable SET 스페어 = IFNULL(CONCAT( 스페어, "string", "string"))

를 변환하다NULL빈 문자열로 둘러싸인 값COALESCE

"UPDATE table SET data = CONCAT(COALESCE(`data`,''), 'a')"

또는

CONCAT_ 사용대신 WS:

"UPDATE table SET data = CONCAT_WS(',',data, 'a')"
UPDATE 
    myTable
SET 
    col = CONCAT( col , "string" )

해결할 수 없었다.요청 구문은 올바르지만 실행 시 "0 line affected"가 됩니다.

해결책은 다음과 같습니다.

UPDATE 
    myTable 
SET 
    col = CONCAT( myTable.col , "string" )

그거 먹혔어.

UPDATE mytable SET spares = CONCAT(spares, ',', '818') WHERE id = 1

나한테는 안 먹혔어

스페어는NULL디폴트지만varchar

해결했다.열에는 사용할 수 있는 문자 집합이 제한되어 있고, 변경 후 쿼리가 정상적으로 작동합니다.

다음과 같이 할 수 있습니다.

Update myTable
SET spares = (SELECT CASE WHEN spares IS NULL THEN '' ELSE spares END AS spares WHERE id = 1) + 'some text'
WHERE id = 1

필드가 null인 경우 필드 = 필드 + 값이 작동하지 않습니다.

언급URL : https://stackoverflow.com/questions/4128335/sql-update-all-values-in-a-field-with-appended-string-concat-not-working

반응형