반응형
MySQL LPAD를 이용하여 코드를 자동으로 채번하는 방법입니다.
코드를 채번하는 처리는 PHP로 작성하였습니다.
J010001과 같은 형태의 코드를 자동 채번해 보겠습니다.
1. 사업자 아이디 중 'J01'로 시작하는 아이디를 조회합니다.
WHERE biz_id like 'J01%'
2. 'J01'은 문자이기에 REPLACE 함수를 이용해 삭제한 후 MAX 값을 가져와서 1을 더합니다.
MAX(REPLACE(bz_id,'J01',''))+1
3. 채번된 숫자를 CAST함수를 이용해서 문자로 변환을 합니다.
LPAD를 이용해서 0이 포함된 5자리 문자를 구성합니다.
LPAD(CAST(mem.next_seq AS CHAR), 5, '0')
4. PHP에서 MySQL로 00002를 가져온 후 'J01'을 붙여서 코드를 완성합니다.
이 부분은 MySQl에서 'J01'를 붙여서 조회를 하셔도 됩니다.
$nextSeqResult = sql_fetch($next_seq_sql, false);
$next_seq = $nextSeqResult['next_seq'];
$biz_id = 'J01' . $next_seq;
PHP로 작성된 전체 프로그램 소스입니다
<?
// 코드 채번
$next_seq_sql = "
SELECT LPAD(CAST(mem.next_seq AS CHAR), 5, '0') next_seq
FROM
(
SELECT MAX(REPLACE(bz_id,'J01',''))+1 AS next_seq
FROM biz_cust
WHERE biz_id like 'J01%'
) mem
";
$nextSeqResult = sql_fetch($next_seq_sql, false);
$next_seq = $nextSeqResult['next_seq'];
$biz_id = 'J01' . $next_seq;
// End 코드 채번
?>
아래는 자주 접하지 못하는 MySQL 함수 스펙입니다.
w3schools 사이트를 참조하였습니다.
Syntax
LPAD(string, length, lpad_string)
Parameter Values
ParameterDescription
string | Required. The original string. If the length of the original string is larger than the length parameter, this function removes the overfloating characters from string |
length | Required. The length of the string after it has been left-padded |
lpad_string | Required. The string to left-pad to string |
Technical Details
Works in:
From MySQL 4.0 |
Syntax
CAST(value AS datatype)
Parameter Values
ParameterDescription
value | Required. The value to convert |
datatype | Required. The datatype to convert to. Can be one of the following: |
Technical Details
Works in:
From MySQL 4.0 |
반응형
'유용한 활용팁' 카테고리의 다른 글
네이버 스마트스토어 정부24에서 통신판매업 신고 방법 (0) | 2020.07.11 |
---|---|
네이버 스마트스토어 통신판매업 신고에 필요한 구매안전서비스 이용확인증 발급 방법 - 개인에서 사업자 전환 시 (0) | 2020.07.10 |
네이버 스마트스토어 상품 등록 이미지 파일로부터 한글 텍스트 추출하는 방법 - feat. 구글 드라이브 (2) | 2020.07.06 |
네이버 스마트스토어 운영을 위한 간이 사업자 등록하기 (0) | 2020.06.30 |
Javascript jQuery countdown 사용하기 - feat. timer (0) | 2020.06.29 |