TypeORM:使用 LIKE 运算符(2 个示例)
在 TypeORM 中,Like运算符(带有百分号 % )用于搜索列中的指定模式。这篇简洁的文章将向您介绍使用Like运算符以 2 种不同方式选择数据的 2 个示例:
- 使用find() 方法
- 使用查询生成器
关于Like关键字和百分号的快速说明:
- Like ‘zadmei.com%’ :查找以“zadmei.com”开头的任何值
- Like ‘%zadmei.com’ :查找以“zadmei.com”结尾的任何值
- Like ‘%zadmei.com%’ :查找包含“zadmei.com”的任何值(在任何位置)
我们将使用一个名为Post的示例实体(将博客文章存储在三列中:id、title和body):
import { Entity, Column, PrimaryGeneratedColumn, Unique } from 'typeorm';
@Entity()
@Unique(['title'])
export class Post {
@PrimaryGeneratedColumn()
id: number;
@Column()
title: string;
@Column()
body: string;
}
使用 find() 方法
此示例选择标题包含以下单词的所有博客文章:’zadmei.com’。
import { Like } from 'typeorm';
/*...*/
const postRepository = myDataSource.getRepository(Post);
const posts = await postRepository.find({
where: { title: Like('%zadmei.com%') },
});
console.log(posts);
使用查询生成器
此代码片段与前面的代码片段执行相同的操作,但方式不同(您不必从 ‘typeorm’ 导入 { Like } ):
const postRepository = myDataSource.getRepository(Post);
const posts = await postRepository
.createQueryBuilder('post')
.where('post.title LIKE :title', { title: '%zadmei.com%' })
.getMany();
console.log(posts);
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。