>데이터 베이스 >MySQL 튜토리얼 >mysql은 시간에 따라 정렬하고 필드 값을 업데이트합니다.

mysql은 시간에 따라 정렬하고 필드 값을 업데이트합니다.

WBOY
WBOY원래의
2016-08-23 09:01:551857검색

mysqlsql 데이터베이스

이제 4000개의 데이터가 포함된 테이블이 있습니다. 필드 중 하나는 order_id이고,
다른 필드는 pub_time입니다. 네, 이제 pub_time에 따라 증가시키려고 합니다.
order_id 값을 증가시키도록 업데이트하세요. 좋은 방법이 없을까요? ? ? 새로 추가된 데이터를 업데이트하는 것이 아니라 테이블의 기존 4000개 데이터를 업데이트하는 것입니다

답글 내용 :

mysql 라이브러리, 스크립트를 로드하세요.
테이블 t 업데이트
내부 조인
(SELECT @rownum := @rownum + 1 AS 랭크, t.order_id
FROM 테이블 t, (SELECT @rownum := 5000) r
pub_time으로 주문 asc) c on c.order_id = t.order_id
set t.order_id = c.rank;

기본 로직은 pub_time을 기준으로 일련번호를 정렬 및 생성한 다음 원본 테이블로 업데이트하는 것입니다.
여기서 주목해야 할 점은 업데이트 프로세스 중에 order_id 기본 키 충돌을 방지하려면 순위의 초기 값을 더 크게 설정하는 것이 가장 좋습니다. 여기서 rowrum의 초기 값은 5000입니다.

저는 sql 명령에 대해 잘 알지 못합니다. 그렇다면 PHP로 스크립트를 작성하면 될 것 같습니다

즉, 데이터 삽입 시 order_id가 자동 증가하도록 설정되어 있었습니다. 이제 pub_time 값에 따라 데이터를 재정렬하고 order_id 값을 다시 업데이트하시겠습니까? . ?

그렇다면 SQL 문을 사용하는 대신 코드를 사용하여 문제를 해결해야 합니다. . 적어도 업데이트 문으로 문제를 해결하는 방법을 찾지 못했습니다.

무슨 말씀인지 이해가 안 됩니다. pub_time의 증가하는 값에 따라 order_id의 값을 업데이트하시겠습니까?

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.