반응형
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')"
또는
"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
반응형
'programing' 카테고리의 다른 글
조건에 따라 다른 테이블의 열로 열 값 업데이트 (0) | 2023.01.27 |
---|---|
Maria의 관련 서브쿼리에서 DateTimes 잘라내기DB (0) | 2023.01.27 |
JavaScript 코드에서 데이터 속성 값을 얻으려면 어떻게 해야 합니까? (0) | 2023.01.27 |
Python 3의 멀티 프로세싱과 멀티스레딩의 비동기화 (0) | 2023.01.27 |
Matplotlib를 사용하여 비블로킹 방식으로 그림 그리기 (0) | 2023.01.27 |