Skip to content

查询

检索单个对象

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();