본문 바로가기
MySql

MySQL PHP select the biggest `id` value from MySQL table

by 베이스 공부 2020. 9. 19.
반응형

300,000 개 이상의 행이있는 테이블이 있고 'id'열에 대해 가장 높은 값을 선택해야합니다. 일반적으로 다음과 같이합니다.

SELECT id FROM my_table ORDER BY id DESC

...하지만 이로 인해 쿼리 속도가 느려지므로 사용하고 싶지 않습니다. 이 상황을 해결하는 다른 방법이 있습니까? id 는 자동 증가 및 기본 키입니다.

나중에 수정 : 귀하의 의견에서 제외되었으므로 내 전체 코드가 상당히 잘못 작성된 것 같습니다. 아래에 내가 작업중인 코드 샘플과 테이블을 게시했습니다. table_x의 마지막 ID + 1을 두 테이블 (table_x 자체 포함)에 삽입하는 적절한 방법을 제안 할 수 있습니까? 스크립트가 두 번 이상 실행될 것임을 언급해야합니다.

TABLE_X          TABLE_Y
------------     ----------
id_x | value     id_y | id_x
------------     ----------
   1 | A            1 | 3
   2 | B            
   3 | C

<?php
for($i=0; $i<10; $i++){
    $result_x = mysql_query('SELECT id_x FROM table_x ORDER BY id_x DESC');
    $row_x = mysql_fetch_array($result_x);

    $next = $row_x['id_x'] + 1;
    mysql_query('INSERT INTO table_x(id_x) VALUES("'.$next.'")');
    mysql_query('INSERT INTO table_y(id_x) VALUES("'.$next.'")');
}
?>

 

해결 방법

 

다음은 사용해야하는 올바른 코드입니다.

mysql_query('INSERT INTO table_x(id_x) VALUES(NULL)');
$id = mysql_insert_id();
mysql_query("INSERT INTO table_y(id_x) VALUES($id)");

 

참조 페이지 https://stackoverflow.com/questions/9456280

 

 

반응형

댓글