nodejs 组合过滤的问题

现在已经可以根据 posts?category=课件 、posts?subject=数学、posts?grade=一年级上册、posts?version=人教版 这样的路由,可以过滤出个单个条件的 post 了,但怎么组合过滤呢?
比如任选两个或者三个或者四个条件都满足。

我目前的 post middleware.ts 代码:

  // 组合过滤
    if (category && grade && version && subject) {
        request.filter = {
            name: 'post',
            sql: 'category = ? and grade = ? and version = ? and subject = ?',
            param: '',
        };
    }

没有成功

mysql 语句,这个 mysql 可以在数据库获取到数据

SELECT 
    post.id,
    post.title,
    post.subject,
    post.version,
    post.grade,
    post.category
    
FROM
    post

WHERE
    grade = "一年级上册" AND subject = "数学" AND version = "人教版" AND category = "教案"
阅读 1.6k
1 个回答
// 组合过滤
    if (category || grade || version || subject) {
        var sql = ' 1=1 '
        if (category) {
            sql += "and category='" + category + "'";
        }
        if (grade) {
            sql += "and grade='" + grade + "'";
        }
        if (version) {
            sql += "and version='" + version + "'";
        }
        if (subject) {
            sql += "and subject='" + subject + "'";
        }
        request.filter = {
            name: 'default',
            sql: sql,
        };
    }

问题解决

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题