[SQL] 열에서 MySQL의 일부 값 앞에 0을 추가
SQL열에서 MySQL의 일부 값 앞에 0을 추가
나는 CSV 나에게 보낸 CSV 파일이 있습니다. 관심 분야는 8 자리입니다. 0 필드 시작 그 중 일부는 숫자를 보냈습니다. 그래서, 지금 몇 앞에 0을 떨어졌다.
이미 VARCHAR에 필드를 변환. 지금은이 작업을 수행해야합니다
나는 이제이 있습니다 :
12345678
1234567
나는이 있어야합니다 :
12345678
01234567
해결법
-
==============================
1.숫자에 필드 등을 변경하고 0을 유지하기 위해 ZEROFILL을 사용하여
숫자에 필드 등을 변경하고 0을 유지하기 위해 ZEROFILL을 사용하여
또는
사용 LPAD ()
SELECT LPAD('1234567', 8, '0');
-
==============================
2.혹시:
혹시:
select lpad(column, 8, 0) from table;
mylesg에서, 아래의 의견에 질문에 대한 응답으로 편집 :
난 당신이 쿼리 비슷한에 사용한다고 가정하고 있습니다 :
UPDATE table SET columnName=lpad(nums,8,0);
그 성공했지만 테이블의 값이 리딩 제로없이 여전히 인 경우에, 나는 당신이 아마 숫자 유형으로 열을 설정 좋을 것? 그런 경우 당신은 열이 선행 0을 유지하기 위해 텍스트 / VARCHAR () 형이되도록 테이블을 변경해야 할 것입니다 :
먼저:
ALTER TABLE `table` CHANGE `numberColumn` `numberColumn` CHAR(8);
둘째, 업데이트를 실행 :
UPDATE table SET `numberColumn`=LPAD(`numberColum`, 8, '0');
이 후, 최고의-제로를 유지해야한다; 아래 측 열이 더 엄격 숫자 타입 없다는 것이다; 좀 더 엄격한 검증을 시행 할 수 있습니다, 그래서 그 이외의 숫자는 해당 컬럼에 입력되지 않도록 (귀하의 사용 사례에 따라).
참고 :
-
==============================
3.MySQL 데이터베이스에 엑셀에서 전화 번호 데이터를 가져올 때 나는 비슷한 문제가 있었다. 필요없이 간단한 트릭이 전화 번호의 길이를 식별 할 수 있도록 (때문에 내 데이터에 변경 전화 번호의 길이) :
MySQL 데이터베이스에 엑셀에서 전화 번호 데이터를 가져올 때 나는 비슷한 문제가 있었다. 필요없이 간단한 트릭이 전화 번호의 길이를 식별 할 수 있도록 (때문에 내 데이터에 변경 전화 번호의 길이) :
UPDATE table SET phone_num = concat('0', phone_num)
난 그냥 전화 번호 앞에 0을 CONCAT.
from https://stackoverflow.com/questions/11165104/adding-a-leading-zero-to-some-values-in-column-in-mysql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 하위 쿼리는 IN 대 EXISTS - MySQL의 (0) | 2020.04.07 |
---|---|
[SQL] SQL 쿼리는 이전에 알려진 값의 값으로 행에 NULL 값을 대체 (0) | 2020.04.07 |
[SQL] 반환 JSON의 배열 SQL에서 객체로 (포스트 그레스) (0) | 2020.04.07 |
[SQL] INSERT에 대한 SQL 주입 (0) | 2020.04.07 |
[SQL] 어떻게 별도로 localdb 설치 하는가? (0) | 2020.04.07 |