SQL에서 테이블의 마지막 레코드를 선택하려면 어떻게 해야 합니다.
테이블에서 모든 레코드를 선택하기 위한 샘플 코드입니다.그 테이블의 마지막 기록을 어떻게 선택하는지 누가 보여줄 수 있나요?
select * from table
사용할 때:SELECT * FROM TABLE ORDER BY ID DESC LIMIT
'LIMIT' 근처에 1행: 잘못된 구문이 있습니다.사용하는 코드는 다음과 같습니다.
private void LastRecord()
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["HELPDESK_OUTLOOKConnectionString3"].ToString());
conn.Open();
SqlDataReader myReader = null;
SqlCommand myCommand = new SqlCommand("SELECT * FROM HD_AANVRAGEN ORDER BY " +
"aanvraag_id DESC LIMIT 1", conn);
myReader = myCommand.ExecuteReader();
while (myReader.Read())
{
TextBox1.Text = (myReader["aanvraag_id"].ToString());
TextBox1.Text += (myReader["wijziging_nummer"].ToString());
TextBox1.Text += (myReader["melding_id"].ToString());
TextBox1.Text += (myReader["aanvraag_titel"].ToString());
TextBox1.Text += (myReader["aanvraag_omschrijving"].ToString());
TextBox1.Text += (myReader["doorlooptijd_id"].ToString());
TextBox1.Text += (myReader["rapporteren"].ToString());
TextBox1.Text += (myReader["werknemer_id"].ToString());
TextBox1.Text += (myReader["outlook_id"].ToString());
}
}
더 이상의 정보가 없다면 우리가 할 수 있는 최선의 데이터베이스 등은 다음과 같습니다.
SQL 서버
SELECT TOP 1 * FROM Table ORDER BY ID DESC
MySql
SELECT * FROM Table ORDER BY ID DESC LIMIT 1
SQL-Database의 마지막 행을 가져오려면 다음 SQL 문자열을 사용합니다.
SELECT * FROM TableName WHERE id=(SELECT max(id) FROM TableName);
출력:
db의 마지막 줄!
ID 열이 있는 경우:
SELECT TOP 1 *
FROM table
ORDER
BY Id DESC;
또한 SQL Server에서도 사용할 수 있습니다.MySQL을 사용해야 할 것 같습니다.
SELECT *
FROM table
ORDER
BY Id DESC
LIMIT 1
하지만 100% 확신할 수는 없어요.
편집
다른 답변을 보면 MySQL 문장이 정확하다고 100% 확신할 수 있습니다. :o)
편집
방금 당신의 최근 댓글을 봤어요.다음과 같은 작업을 할 수 있습니다.
SELECT MAX(Id)
FROM table
그러면 가장 높은 ID 번호가 표시됩니다.
SELECT * FROM TABLE ORDER BY ID DESC LIMIT 1
예, 이것은 mysql입니다.SQL Server:
SELECT TOP 1 * FROM Table ORDER BY ID DESC
MS SQL Server는 ANSI SQL을 지원했습니다.FETCH FIRST
지금까지 몇 년째:
SELECT * FROM TABLE
ORDER BY ID DESC
OFFSET 0 ROWS FETCH FIRST 1 ROW ONLY
(대부분의 최신 데이터베이스와 연동됩니다.)
테이블 설계에서는 항상 다음과 같은 자동 행 식별자를 사용하는 것이 좋습니다.
[RowID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL
마지막 행은 다음 순서로 식별할 수 있습니다.
select * from yourTable where rowID = @@IDENTITY
자기 증가 필드가 있는 경우(예:ID
그럼 다음과 같은 작업을 수행할 수 있습니다.SELECT * FROM foo WHERE ID = (SELECT max(ID) FROM foo)
거의 모든 답변은 ID 열이 정렬되어 있다고 가정합니다(아마도 자동으로 증분됩니다).그러나 ID 열이 정렬되지 않은 경우도 있으므로 ORDER BY 문장은 의미가 없습니다.
마지막으로 삽입된 ID가 항상 가장 높은 ID가 아닌 마지막(고유한) 항목일 수 있습니다.
이러한 상황에서 생각할 수 있는 해결책 중 하나는 행 ID를 즉시 작성하는 것입니다.
SET @r = 0;
SELECT * FROM (SELECT *, (@r := @r + 1) AS r_id FROM my_table) AS tmp
ORDER BY r_id DESC LIMIT 1;
SELECT * FROM table ORDER BY Id DESC LIMIT 1
순서를 거꾸로 하면 마지막이 첫 번째가 됩니다.
테이블에 자동 증분 값이 없거나 주문할 수 있는 적절한 요소가 없는 경우 다음과 같은 컬렉션에서 항목의 임의 순서를 가져올 수 있습니다.
SELECT
[item]
FROM (
SELECT
*
, ROW_NUMBER() OVER(PARTITION BY 1 ORDER BY GETDATE()) 'RN'
FROM [TABLE]
) RDR
WHERE [RN] = (
SELECT
MAX([RN])
FROM (
SELECT
*
, ROW_NUMBER() OVER(PARTITION BY 1 ORDER BY GETDATE()) 'RN'
FROM [TABLE]
) RDR
)
중요한 경고는 데이터 집합이 클수록 성능이 저하된다는 것입니다.
Oracle에서는 다음을 수행할 수 있습니다.
SELECT *
FROM (SELECT EMP.*,ROWNUM FROM EMP ORDER BY ROWNUM DESC)
WHERE ROWNUM=1;
이것이 가능한 방법 중 하나입니다.
select ADU.itemid, ADU.startdate, internalcostprice
from ADUITEMINTERNALCOSTPRICE ADU
right join
(select max(STARTDATE) as Max_date, itemid
from ADUITEMINTERNALCOSTPRICE
group by itemid) as A
on A.ITEMID = ADU.ITEMID
and startdate= Max_date
이제 어느 정도 된 것 같다.
declare @x int;
select @x = max(id) from table_name;
select * from where id = @x;
$sql="SELECT tot_visit FROM visitors WHERE date = DATE(NOW()) - 1 into @s
$conn->query($sql);
$sql = "INSERT INTO visitors (nbvisit_day,date,tot_visit) VALUES (1,CURRENT_DATE,@s+1)";
$conn->query($sql);
다음과 같은 작업을 수행할 수도 있습니다.
SELECT LAST (column_name) AS LAST_CUSTOMER FROM table_name;
내가 리카르도에게 투표했어실제로는 max가 정렬보다 훨씬 효율적입니다.차이점을 확인하세요.훌륭합니다.
마지막 행/업데이트 레코드(타임 스탬프)를 가져와야 했습니다.
`sqlite> select timeStamp from mypadatav2 order by timeStamp desc limit 1;
2020-03-11 23:55:00
Run Time: real 1.806 user 1.689242 sys 0.117062`
`sqlite> select max(timeStamp) from mypadatav2;
2020-03-11 23:55:00
Run Time: real 0.553 user 0.412618 sys 0.134340`
언급URL : https://stackoverflow.com/questions/5191503/how-to-select-the-last-record-of-a-table-in-sql
'programing' 카테고리의 다른 글
Powershell v3 Invoke-WebRequest HTTPS 오류 (0) | 2023.04.10 |
---|---|
현재 회선 번호는 어떻게 알 수 있나요? (0) | 2023.04.10 |
초보자용 Git:최종적인 실용적인 가이드 (0) | 2023.04.10 |
Swift 목록에서 줄 구분 기호를 삭제하는 방법ForEach를 사용하지 않는 UI? (0) | 2023.04.10 |
WPF에서의 컨트롤 템플릿과 DataTemplate의 차이 (0) | 2023.04.10 |