MySQL에서 0부터 시작하는 값을 INSERT해도 0이 표시되지 않는 문제 해결
2358 단어 MySQLSQL신인 프로그래머 응원신인 프로그래머
경위
제목 문제를 해결하기 위한 SQL을 메모로 게시
해결하고 싶은 이벤트
ID 열에 0부터 시작하는 값을 INSERT해도 0이 표시되지 않는 경우의 SQL 예.
/* 新しいDBとしてmydbを定義、使用宣言をする */
create database mydb;
use mydb;
/* sampleテーブルを作成 */
create table mydb.sample(id int(3) UNSIGNED PRIMARY KEY,
name varchar(10) not null, sex char(1) not null);
/* 値をINSERTする */
insert into sample
values ('001', "田中太郎", "男");
/* 中身を表示する */
select * from sample;
결과적으로 id 열에는 INSERT 된 '001'이 아니라 '1'이 표시됩니다.
해결 방법
결론, INSERT문이 아닌 TABLE 작성시의 정의에 문제가 있다.
해결하려면 id 열을 정의 할 때 ZEROFILL을 지정해야했습니다.
실제로 ZEROFILL을 지정하고 INSERT 다시 시도한다.
/* sampleテーブルを一度削除しておく */
drop table sample;
/* idに ZEROFILL を指定したsampleテーブルを作成 */
create table mydb.sample(id int(3) ZEROFILL PRIMARY KEY,
name varchar(10) not null, sex char(1) not null);
/* 値をINSERTする */
insert into sample
values ('1', "田中太郎", "男");
/* 中身を表示する */
select * from sample;
컬럼 정의시에 ZEROFILL를 지정해 두면, 데이터 INSERT시에 위의 자리수를 0으로 메워 문자열 길이를 고정해 주기 때문에, 값을 insert 할 때에는 위의 자리수의 0을 입력할 필요가 아니.
id 열에는 지정된대로 '001'이 표시됩니다.
보충 및 참고 사이트
htps : // m / thun yG / ms / a 0097 a 83b2 a 879b22 a b9
ZEROFILL 속성을 넣을 때 UNSIGNED 속성을 넣지 않은 이유도 작성되었습니다.
ht tp // d 병. 사쿠라. 네. jp/? 콘텐트 ts_i d=102
mysql에서 열을 정의 할 때 int ()의 괄호 안의 숫자의 의미를 알 수 있습니다.
이번과 같이 ZEROFILL을 붙였을 때, 0을 보완하는 자리수로서 괄호 안의 수치가 의미를 가지네요.
예를 들어 이번에는 id 컬럼을 int(3)로 하고 있으므로, 1을 삽입했을 때에 '001'이 필드의 값으로서 들어갑니다. 만약 이것이 int(5)이고, 1을 삽입했을 경우는 '00001'이 필드의 값으로서 들어갑니다.
Reference
이 문제에 관하여(MySQL에서 0부터 시작하는 값을 INSERT해도 0이 표시되지 않는 문제 해결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/key_sharp/items/747604e514a6386a2bdd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)