查询
检索单个对象
IBest-ORM 提供了 First、Last 方法,以便从数据库中检索单个对象。
ts
let result: Record<string, relationalStore.ValueType> = this.db.Table("User").Where('id', 1).First();
if(result["id"] == 1) {}
// Or
let ref = new User("", 0, 0);
this.db.Table("User").Where('id', 1).First(ref);
if(ref.id == 1) {}
检索全部对象
IBest-ORM 提供了 Find 方法,以便从数据库中检索多个对象。
ts
let results: Array<Record<string, relationalStore.ValueType>> = this.db.Table("User").Find();
条件
Where
ts
// ... WHERE id = 1 ...
this.db.Where('id', 1).First(user);
// ... WHERE name is null ...
this.db.Where('name', null).First(user);
// ... WHERE id = 18 AND age = 18 ...
this.db.Where(['id', 'age'], 18).First(user);
// Or
this.db.Where('id', 18).Where('age', 18).First(user);
// ... WHERE id = 1 AND age = 18 ...
this.db.Where(['id', 'age'], [1, 18]).First(user);
// ... WHERE id IN (1, 2, 3) ...
this.db.Where('id', [1, 2, 3]).First(user);
Not
ts
// ... WHERE id != 1 ...
this.db.Not('id', 1).First(user);
// ... WHERE name is not null ...
this.db.Not('name', null).First(user);
// ... WHERE id != 18 AND age != 18 ...
this.db.Not(['id', 'age'], 18).First(user);
// Or
this.db.Not('id', 18).Not('age', 18).First(user);
// ... WHERE id != 1 AND age != 18 ...
this.db.Not(['id', 'age'], [1, 18]).First(user);
// ... WHERE id NOT IN (1, 2, 3) ...
this.db.Not('id', [1, 2, 3]).First(user);
Or
ts
// ... WHERE age = 18 OR age = 19 ...
this.db.Where('age', 18).Or().Where('age', 19).First(user);
Like
ts
// ... WHERE name LIKE "张%" ...
this.db.Like('name', '张%').First(user);
// ... ... WHERE name LIKE '张%' AND age LIKE '张%' ...
this.db.Like(['name', 'age'], '张%').First(user);
Between
ts
// ... WHERE age BETWEEN 18 AND 20 ...
this.db.Between('age', 18, 20).First(user);
NotBetween
ts
// ... WHERE age NOT BETWEEN 18 AND 20 ...
this.db.NotBetween('age', 18, 20).First(user);
Greater
ts
// ... WHERE age > 18 ...
this.db.Greater('age', 18).First(user);
Less
ts
// ... WHERE age < 18 ...
this.db.Less('age', 18).First(user);
// ... WHERE age < 18 AND id < 18 ..
this.db.Less(['age', 'id'], 18).First(user);
// ... WHERE age < 18 AND id < 1 ...
this.db.Less(['age', 'id'], [18, 1]).First(user);
GreaterOrEqualTo
ts
// ... WHERE age >= 18 ...
this.db.GreaterOrEqualTo('age', 18).First(user);
LessOrEqualTo
ts
// ... WHERE age <= 18 ...
this.db.LessOrEqualTo('age', 18).First(user);
选择特定字段
Select
ts
// SELECT name, age FROM User
this.db.Table("User").Select(['name', 'age']).Find();
排序
OrderByAsc
ts
// ... ORDER BY age ASC ...
this.db.Table("User").OrderByAsc('age').Find();
OrderByDesc
ts
// ... ORDER BY age DESC ...
this.db.Table("User").OrderByDesc('age').Find();
Limit & Offset
ts
// SELECT * FROM User LIMIT 3;
this.db.Table("User").Limit(3).Find();
// SELECT * FROM User OFFSET 3;
this.db.Table("User").Offset(3).Find();
// SELECT * FROM User OFFSET 5 LIMIT 10;
this.db.Table("User").Limit(10).Offset(5).Find();
Group
ts
// ... GROUP BY age ...
this.db.Table("User").Group('age').Find();
// ... GROUP BY age, name ...
this.db.Table("User").Group(['age', 'name']).Find();