วิธีรับแถวแรก / บนสุดของตารางใน Sqlite ผ่าน Sql Query


91

ฉันต้องการดึงข้อมูลแถวแรก / บนสุดของตารางในฐานข้อมูล Sqlite

แต่โปรแกรมของฉันส่ง SQLException "Sqlite Syntax Error: Syntax error ใกล้ '1'" สำหรับข้อความค้นหาที่ฉันใช้:

SELECT TOP 1 * 
FROM SAMPLE_TABLE

ฉันเดาว่าเป็นไวยากรณ์โดยเฉพาะสำหรับ MS SQL SERVER และ MS ACCESS ตอนนี้ฉันใช้.

SELECT *
FROM SAMPLE_TABLE
LIMIT 1

ทางออกที่ดีที่สุดสำหรับปัญหานี้คืออะไร?


ควรกล่าวว่านักพัฒนาไม่ควรขึ้นอยู่กับลำดับทางกายภาพของเรกคอร์ดในตาราง นี่คือความคิดที่อันตราย
Ruslan Zasukhin

คำตอบ:


145

ใช้แบบสอบถามต่อไปนี้:

SELECT * FROM SAMPLE_TABLE ORDER BY ROWID ASC LIMIT 1

หมายเหตุ: Sqlite ของการอ้างอิงแถว ID จะมีรายละเอียดที่นี่


28

LIMIT 1คือสิ่งที่คุณต้องการ โปรดทราบว่าสิ่งนี้จะส่งคืนระเบียนแรกในชุดผลลัพธ์โดยไม่คำนึงถึงลำดับ (เว้นแต่คุณจะระบุorderอนุประโยคในแบบสอบถามภายนอก)


1
LIMIT 1ดำเนินการค้นหาแบบเต็มแล้วละทิ้งผลลัพธ์ที่ไม่จำเป็น COUNT(*)มีหลายรายการจดหมายอภิปรายเกี่ยวกับเรื่องนี้และ TOP 1มันแตกต่างกว่าการหาบันทึกการจับคู่ครั้งแรกกับ เมื่อพบระเบียนแรกแบบสอบถามสามารถหยุดและส่งคืนผลลัพธ์ได้
jww
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.