把以下代码转为lambdaquerywapper:SELECT knowledge_type, knowledge_desc,ana FROM xy_custom_knowledge B LEFT JOIN (SELECT attachment_name ana,head_id FROM xy_custom_knowledge_file a ) C on C.head_id = B.id WHERE ana LIKE "%ruoyi%" OR knowledge_desc LIKE "%ruoyi%" OR knowledge_desc LIKE "%ruoyi%"
时间: 2024-03-06 22:50:02 浏览: 15
把以上 SQL 语句转换为 LambdaQueryWrapper,可以如下实现:
```
LambdaQueryWrapper<XyCustomKnowledge> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.select(XyCustomKnowledge::getKnowledgeType, XyCustomKnowledge::getKnowledgeDesc,
Sqls.custom("C.attachment_name as ana"));
lambdaQueryWrapper.leftJoin(XyCustomKnowledgeFile.class,
XyCustomKnowledge::getId, XyCustomKnowledgeFile::getHeadId);
lambdaQueryWrapper.and(wq -> wq.like(Sqls.custom("C.attachment_name"), "ruoyi")
.or().like(XyCustomKnowledge::getKnowledgeDesc, "ruoyi")
.or().like(XyCustomKnowledge::getKnowledgeDesc, "ruoyi"));
```
其中,LambdaQueryWrapper 的 select 方法和 leftJoin 方法同上,用于指定查询的字段和设置左连接。LambdaQueryWrapper 的 and 方法用于连接多个查询条件,这里使用了 LambdaQueryWrapper 的 or 方法将三个模糊查询条件连接在一起。LambdaQueryWrapper 的 like 方法同上,用于设置模糊查询条件。需要注意的是,这里使用了 LambdaQueryWrapper 的 or 方法将三个模糊查询条件连接在一起,而不是使用 LambdaQueryWrapper 的 or 条件拼接方法 or 来连接三个查询条件,因为使用 or 条件拼接方法会导致拼接出来的 SQL 语句中多出一个括号,从而导致查询失败。