programing

MySQL - 가장 쉬운 방법으로 마지막으로 삽입한 행 선택

newstyles 2023. 11. 5. 11:04

MySQL - 가장 쉬운 방법으로 마지막으로 삽입한 행 선택

조건에 따라 지정된 마지막 입력 행을 선택하기만 하면 됩니다(예:

SELECT ID from bugs WHERE user=Me

사용자 '나'가 마지막으로 입력한 아이디만 돌려주면 됩니다.이것을 하는 간단한 방법이 있습니까?감사해요.

그것이 가장 좋을 것입니다.TIMESTAMP기본값으로 설정된 열CURRENT_TIMESTAMP.. 이것은 당신이 여기서 찾을 수 있는 유일한 진정한 예측 행동입니다.

당신이 할 수 있는 두번째 최선은ORDER BY ID DESC LIMIT 1그리고 가장 새로운 ID가 가장 큰 가치이기를 바랍니다.

사용가능ORDER BY ID DESC, 그 길로 가면 훨씬 빠르죠

SELECT * FROM bugs WHERE ID = (SELECT MAX(ID) FROM bugs WHERE user = 'me')

큰 테이블이 있는 경우에는 큰 차이가 있을 수 있습니다.

편집

변수가 두 번 이상 필요한 경우(또는 읽기 쉽다고 생각되는 경우) 변수를 설정할 수도 있습니다.

SELECT @bug_id := MAX(ID) FROM bugs WHERE user = 'me';
SELECT * FROM bugs WHERE ID = @bug_id;
SELECT MAX(ID) from bugs WHERE user=Me

이를 달성하기 위한 한 가지 방법은 레코드를 주문하고 1로 제한하는 것입니다.예를 들어 다음 표('data')가 있는 경우.

    id | user | price
   -------------------
    1  |  me  | 40.23
    2  |  me  | 10.23

다음 sql 쿼리를 시도합니다.

  select * from data where user='me' order by id desc limit 1

동시에 최근 기록이 방금 입력한 기록이 아닐 수도 있습니다.기본 키를 사용하여 최신 레코드를 가져오는 것이 더 나을 수 있습니다.

자동 증분 필드인 경우 다음을 사용합니다.SELECT LAST_INSERT_ID();당신이 만든 아이디를 얻기 위해서 입니다.

SELECT * FROM `table_name` 
ORDER BY `table_name`.`column_name` DESC
LIMIT 1 

php에서 mysql 쿼리를 실행한 직후

끝까지 해내다

$lastid=mysql_insert_id();

이것은 당신에게 마지막 자동 증분 ID 값을 줍니다.

MySqlCommand insert_meal = new MySqlCommand("INSERT INTO meals_category(Id, Name, price, added_by, added_date) VALUES ('GTX-00145', 'Lunch', '23.55', 'User:Username', '2020-10-26')", conn);
if (insert_meal .ExecuteNonQuery() == 1)
{
    long Last_inserted_id = insert_meal.LastInsertedId;
    MessageBox.Show(msg, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                MessageBox.Show("Failed to save meal");
            }

버그에서 ID 선택하기 user=MeORDER by CREADE_스탬프 설명; 작성자별_STAMP DESC는 마지막으로 생성된 인덱스에서 해당 데이터를 가져옵니다.

당신의 문제가 해결되기를 바랍니다.

언급URL : https://stackoverflow.com/questions/2770600/mysql-select-the-last-inserted-row-easiest-way