技术与生活 / 一篇记录
查数据时,先别 SELECT 星号
探索表结构与生成业务结果有不同目标。显式列出需要的字段,既减少无用传输,也让调用方不容易受到新增列或列顺序变化的影响。
先明确这里的区别
探索数据时先选需要的列并限制行数,可以减少无意的大结果集。
查询示例以 SQLite 为例;notes 为测试表,包含 id、title、score、category、created_at 字段。
SELECT id, title FROM notes ORDER BY id LIMIT 5;
怎样判断处理正确
确认列名和排序稳定,不依赖数据库碰巧返回的顺序。
先用小结果集确认字段与排序,再扩大范围。用于导出或分页时,应定义稳定的排序键;只加 LIMIT 不会自动产生确定的记录顺序。
若排序字段不唯一,建议增加主键作为次级排序条件。这样同分或同时间的记录也有明确顺序,对于分页、测试快照和增量导出都会更稳定。
需要留意的是,没有 ORDER BY 时,LIMIT 不能保证每次取到相同记录。
参考:SQL 文档。