[SQL] 추가 된 문자열 CONCAT가 작동하지 필드에서 SQL UPDATE는 모든 값
SQL추가 된 문자열 CONCAT가 작동하지 필드에서 SQL UPDATE는 모든 값
여기에 내가하고 싶은 것입니다 :
현재 테이블 :
+----+-------------+
| id | data |
+----+-------------+
| 1 | max |
| 2 | linda |
| 3 | sam |
| 4 | henry |
+----+-------------+
미스터리 쿼리 (같은 "UPDATE 테이블 SET 데이터 = CONCAT (데이터, 'A')")
테이블을 결과 :
+----+-------------+
| id | data |
+----+-------------+
| 1 | maxa |
| 2 | lindaa |
| 3 | sama |
| 4 | henrya |
+----+-------------+
그것을 이잖아! 난 그냥 하나의 쿼리에서 그것을 할 필요가 있지만, 방법을 찾을 수없는 것. 내가 Bluehost를에서 MySQL (나는 그것의 버전 4.1을 생각)를 사용하고 있습니다
감사합니다 여러분.
해결법
-
==============================
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에서이 테스트를하고 있지만, 문제가 될 것
-
==============================
2.NULL 값을 반환 널 (null)와 CONCAT, 가장 쉬운 해결책은 그래서 :
NULL 값을 반환 널 (null)와 CONCAT, 가장 쉬운 해결책은 그래서 :
-
==============================
3.
UPDATE mytable SET spares = CONCAT(spares, ',', '818') WHERE id = 1
나를 위해 작동하지 않습니다.
스페어 기본 있지만 VARCHAR에 의해 NULL입니다
-
==============================
4.COALESCE에 싸서 빈 문자열과 NULL 값을 변환
COALESCE에 싸서 빈 문자열과 NULL 값을 변환
"UPDATE table SET data = CONCAT(COALESCE(`data`,''), 'a')"
또는
사용 CONCAT_WS 대신 :
"UPDATE table SET data = CONCAT_WS(',',data, 'a')"
-
==============================
5.
UPDATE myTable SET col = CONCAT( col , "string" )
그것을 밖으로 작동하지 않을 수 없습니다. 요청 구문은 정확하지만, 실행시에 "0 라인은 영향".
이 솔루션은 있었다 :
UPDATE myTable SET col = CONCAT( myTable.col , "string" )
그 하나는했다.
-
==============================
6.그것을 해결. 열 밝혀, 그것은 받아 들일 문자의 제한된 있었다를 변경, 지금 쿼리가 잘 작동합니다.
그것을 해결. 열 밝혀, 그것은 받아 들일 문자의 제한된 있었다를 변경, 지금 쿼리가 잘 작동합니다.
-
==============================
7.이 작업을 수행 할 수 있습니다 :
이 작업을 수행 할 수 있습니다 :
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의 경우 필드 = 필드 + 값이없는 작업을 수행합니다.
from https://stackoverflow.com/questions/4128335/sql-update-all-values-in-a-field-with-appended-string-concat-not-working by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] MySQL의 여러 하나 개의 쿼리에서 조인? (0) | 2020.05.31 |
---|---|
[SQL] 인덱스 대 고유 제한 조건을 POSTGRES (0) | 2020.05.31 |
[SQL] 어떻게하면 메인 쿼리의 각 레코드에 대해 하나 개의 레코드 (선택 상위 1)을 가져야한다 (SQL 서버)에 하위 쿼리에서 여러 열을 선택할 수 있습니다? [복제] (0) | 2020.05.31 |
[SQL] MySQL은 한 두 개의 열 인덱스 대 두 단일 열 인덱스? (0) | 2020.05.31 |
[SQL] 읽을 수있는 / 계층 적 형식으로 배열을 표시 (0) | 2020.05.31 |