
AlaSQL 查询返回的是标准 JavaScript 对象数组,可直接通过点号(.)或方括号([])语法访问列名属性,如 res[0].FirstName 或 res[0]['FirstName'];需确保列名大小写与建表定义一致,且查询结果非空。
alasql 查询返回的是标准 javascript 对象数组,可直接通过点号(`.`)或方括号(`[]`)语法访问列名属性,如 `res[0].firstname` 或 `res[0]['firstname']`;需确保列名大小写与建表定义一致,且查询结果非空。
AlaSQL 执行 SELECT 语句后,返回值是一个纯 JavaScript 数组,其中每个元素都是一个普通对象(Plain Old JavaScript Object, POJO),其属性名严格对应 SQL 查询中所选列的名称(不区分大小写?注意:实际行为取决于 AlaSQL 版本及 columnNames 选项,但默认情况下完全匹配建表时定义的列名大小写)。
因此,以下两种写法均合法且推荐:
// ✅ 正确:使用点号访问(要求列名是合法标识符) console.log(res[0].FirstName); // 输出 "Peter" // ✅ 正确:使用方括号访问(更灵活,支持含空格/特殊字符的列名) console.log(res[0]['LastName']); // 输出 "Peterson"
⚠️ 注意事项:
- 若列名包含空格、连字符或以数字开头(如
"First Name"或"2ndId"),必须使用方括号语法(row['First Name']),点号语法会报语法错误; - 确保
res非空且索引有效:访问前建议校验Array.isArray(res) && res.length > 0; - AlaSQL 默认保留建表时声明的列名大小写(例如
CREATE TABLE people (FirstName STRING)→ 属性名为FirstName,而非firstname或firstname小写); - 如需统一转为小写键名,可在查询时显式别名:
SELECT Id AS id, FirstName AS firstName, LastName AS lastName FROM people;
✅ 推荐实践(健壮遍历):
if (Array.isArray(res) && res.length > 0) {
res.forEach((row, index) => {
console.log(`Row ${index + 1}:`, {
id: row.Id,
firstName: row.FirstName,
lastName: row.LastName
});
});
} else {
console.log("No data returned.");
}
总结:AlaSQL 的结果集天然支持面向对象的字段访问,无需额外解析。只要列名符合 JavaScript 属性命名规范,res[0].ColumnName 是最简洁、高效的方式;对动态列名或兼容性要求高的场景,优先选用 row['ColumnName'] 形式。











