开发者社区> 问答> 正文

[@徐雷frank][¥20]多个条件进行筛选查询的时候,怎么设计比较好?

php,pdo方式,没用任何框架。这是前提条件,不可改变。

比如,现在只有一张学生表student,包含了所有学生相关信息(id,学号,姓名,班级。。。)。

比如班级筛选,我可以选1班,2班,3班,或者选“任何班级”。

类似这样的筛选条件,非常多。

如果班级参数是”任何班级”,语句就是select from student;不是“任何班级”,语句就是select from student where class = ?。

关键是这样的筛选条件实在是太多了,每一个筛选条件都有“任何”这样一个选项。还有很多筛选选项是类似年龄10-20这样的范围,还有的是类似名字包含“飞”,就是like “%飞%”这样的形式。

如果我针对这么多筛选项一个个判断,那要写太多的判断代码,可能出现的sql语句形式也太多了,难道我要针对所有出现的情况去执行不同的sql语句吗?

展开
收起
晓生寒 2018-12-14 15:32:37 2990 0
1 条回答
写回答
取消 提交回答
  • 1.阿里云大学讲师,主讲《微服务Spring Cloud设计与开发实战》《MongoDB高级实战》等课程 2.MongoDB中文社区专家 3.《MongoDB实战》第2版译者 5.吉林大学计算机科学学士、上海交通大学硕士

    1、组合拼接SQL语句,不需要每种情况写一次SQL。
    2、String sql = "select from student where 1=1 ";
    if(全选)
    {
    sql = sql + " and class in (1,2,3) ";
    }else
    {
    sql = sql + " and class =? ";
    }
    3、对于Like,注意拼接时候,检查过滤参数,防止SQL注入。

    2019-07-17 23:21:02
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载