@typeorm多表查询加模糊查询
首先我是一个新手,这是我在csdn上写的第一篇文章请多关照
然后我再这里祝福大家 身体健康 往事如意 接下来 就开始正题
之前肯定有很多同仁在这个问题上犯了难typeorm一个怎么多表查询并模糊查询呢? 今天我就来为大家解惑 相信大家之前也用过typeorm的多表连接加条件查询了
let a=getManager().getRepository(Teachers);
let v=await a.find(
{
relations: ['mtypes'],
skip:Number(request.query.listSkip),
take:Number(request.query.ListNumber),
where:{typeId:Number(request.query.typeId)}
});
我们要做的就是在这个多表链接的基础上进行更改 首先大家先回忆一下在这套orm中有几种查询的方法 大家第一个想到的肯定是find(),save()等一系列的方法,但是大家都忽略 了另一种方法query()方法
let videosData=await a.save({teacherName:request.body.teacherName,teacherImg:request.body.teacherImg,teacherTitle:request.body.teacherTitle,teacherRemark:request.body.teacherRemark,typeId:request.body.typeId});
let MtypesData=await R.find();
用户自定义语句。
let a=getManager().getRepository(Teachers);
let videosData=await a.query('select * from teachers where teacherId='+request.query.date);
console.log(videosData);
response.json(videosData);
我们接下来要要说的多表查询加模糊查询就是在这个基础上进行编码的 首先我们把目光放在where的条件上,图中所用的方法就是我上面说的已经封装好的方法。我们要做的就是打破这种常规方法 然后既然要打破我们就要做创新路,怎么创新呢?这就用到了我上面讲的query()方法,用了他,随心所欲的创新。 接着既然要用创新应该怎么写呢?有图有真相
let a=getManager().getRepository(Teachers);
let v=await a.find(
{
relations: ['mtypes'],
skip:Number(request.query.listSkip),
take:Number(request.query.ListNumber),
**where:{typeId:Number(request.query.typeId)}**
});
可以看到我在query里面打了sql语句 最后揭晓怎么实现多表查询加模糊查询,老规矩先上图
let a=getManager().getRepository(Videos);
console.log(request.query.videoTitle);
let v=await a.find({
relations: ['teachers'],
**where:('videoTitle like "%'+request.query.videoTitle+'%"'),**
});
与上面的图对比我们可以看到,我的模糊查询语句打破了那种常规的写法,寻求了新的方法,最终得以实现。
以上就是我对于typeorm中多表查询加模糊查询的理解
最后谢谢大家的观看