2013-10-09 4 views
-1

정수를 보유하고있는 mysql 테이블 컬럼 (실행 중)이 있습니다. 업데이트 쿼리를 사용하여 다른 동적 값 (1,2,3,4,5)으로 증가시키고 싶습니다. 단추를 클릭하십시오. 어떻게해야합니까? 내가 MySQL을 here에 문서를 확인했습니다동적으로 mysql 테이블 컬럼의 값을 증가 시키십시오.

+0

금액을 조금씩 늘리려면 두 값을 모두 알아야합니다. 따라서 원래 값에 액세스해야합니다. 나는 원래 값에 접근하지 않고 동적 인 증가를하는 mysql의 어떤 기능을 모른다. –

+0

Digvijay가 옳습니다. 업데이트하고 싶다면 원래 값을 알 필요가 없습니다. 정확히 달성하고 싶은 것이 명확하지 않은가요? –

+0

원본 값에 액세스하지 않고 동적으로 열 값을 증가시키고 싶습니다. –

답변

1

(그것은 정적 값을 사용하여 않기 때문에 해당 테이블의 컬럼에서 원래 값을 검색하지 않고, 값을 증가하는 직접적인 방법이, AUTO_INCREMENT를 좋아하지) 그리고이 같은 업데이트 쿼리와 함께 할 수있는 것 같다
UPDATE t1 SET col1 = col1 + 1; 

이 어디 한 COL1도 숫자이기 때문에 모든 숫자 값으로 1을 변경할 수 있습니다. MySql은 col1의 초기 값을 가져 와서 당신의 숫자를 그것에 추가 할 것입니다.

MySql이이 작업을 수행 할 수 있다고해도 속도에 영향을 미친다 고 추측하고 있지만 쿼리가 2 개 빨라질 수도 있지만 차이를 확인하려면 테스트가 필요할 수 있습니다.

소프트웨어 속도에 직면하면 특정 값에 대해서만 선택 쿼리가 저장되므로 앱을 최적화하기 위해 수행 할 수있는 주요 수정 사항이 아닙니다. Digvijay Yadav가 제안했듯이 다른 솔루션을 확인하고 다른 최적화 도구를 사용하여 앱을 더 빠르게 만들 수 있습니다.

또한 무엇을 당신이 일할 수 일을하려고하는 것은 보여줍니다 해당 페이지의 또 다른 예 :

UPDATE t SET id = id + 1 ORDER BY id DESC; 

을 시도하고 그것이 작동하지 않는 경우 알려 주시기 바랍니다.

+0

이 작품은 고맙습니다. 많은 시간과 노력을 절약 해줍니다. –

0

DB 상호 작용이 주요 문제인 경우이 경우 모든 사용자가 클릭 할 때마다 DB에 읽거나 쓰지 않는 것이 좋습니다. 대신 값을 한 번 검색하여 DS (배열 또는 목록 일 수 있음)에 저장해야합니다. 클릭 할 때마다이 목록에서 작업을 수행하고 언젠가는 업데이트 된 값으로 DB를 업데이트합니다.

또한 모든 읽기/쓰기 작업에서 DB 연결을 만들고 파괴하는 경우이를 제안하지 않습니다. 더 나은 해결책 IMO는 웹 응용 프로그램을 시작할 때 DB 연결을 만들고 ServletContextconnection 객체를 attribute으로 저장하는 것입니다. 서블릿과 JSP를 사용하고있는 경우입니다.

웹 응용 프로그램이 너무 크고 사용자 수가 1,000 명 이상인 경우 DB 성능을 향상시키기위한 여러 가지 캐싱 기술이 있습니다.

관련 문제