2015-02-01 2 views
0

이 게시물의 제목을 올바르게 말하면 좋겠다.PHP MYSQLI 마지막 열 값 추가 삽입 1

3 열이있는 테이블로 INSERT 쿼리를 실행하려고합니다. 첫 번째 열은 내가 문제가있는 곳입니다.

VARCHAR 값이 10이고 COMM_CODE라고하며 기본 키인 ALLOW NULL은 선택 해제됩니다. 이 같은 COMM_CODE 모양에 대한

값 : 새 레코드가 삽입 될 때 내가하고 싶은 무엇

COMM_CODE 
c20188 
c20189 
c20190 
// and so on 

가이다는 기본적으로 가장 최근의 기록에 1을 추가 할 수 있습니다.

따라서, 가장 최근의 기록은 다음과 같습니다

c20190 

나는 새로운 레코드를 추가 할 때, 새로운 레코드에 대한 COMM_CODE은 다음과 같습니다

:
c20191 

나는이 시도
INSERT INTO table_c 
    (COMM_CODE, COMM_DESC, DATE) 
VALUES 
    (''+1, 'VIDEO GAMES', NOW()); 

하지만 그 열에 숫자 1이 추가됩니다.

이 문제를 해결하는 방법을 알려주세요.

미리 감사드립니다.

+0

문자열에 1을 어떻게 추가 하시겠습니까? – Jens

+0

그것이 내가 알아 내려고하는 것입니다. 가장 최근의 COMM_CODE를 가져 와서 추가 할 수 있어야합니다. 이것은 가능한가? –

답변

0

여기에 귀하의 쿼리에 대한 해결책 : 새로운 코드를 생성하려면, mysql에서 get_new_code 함수를 생성했습니다. mysql에서 funcion이 어떻게 작동하는지 알기를 바랍니다.

CREATE FUNCTION `get_new_code`() RETURNS varchar(11) 
BEGIN 
    Declare var_code VARCHAR(11); 
    SELECT max(`COMM_CODE`) INTO var_code FROM table_c; 
    RETURN (CONCAT('c',(convert(substr(var_code,2,length(var_code)), SIGNED INTEGER)+1))); 
END 

그냥 당신이 사용할 수있는 논리를 확인합니다 :

select get_new_code(); 

을 당신이 명확한 그림을 얻을 수 있도록. 전화 같은 삽입 쿼리에서이 get_new_code 기능 :

INSERT INTO 
`table_c`(`COMM_CODE`, `COMM_DESC`, `COMM_DATE`) 
VALUES 
(get_new_code(),'Description text',NOW()); 

이 문제를 해결해야한다. :)