mysql 原生 SQL 语句的多条件查询封装,蛮适合日常开发中那些字段可选、查询条件又多又乱的场景。你总不能每次都写一堆 if 判断拼 SQL 吧?封装下,用起来顺手,改起来也方便,适合维护老项目或者和后端对接比较紧的前端同学。
多条件查询的痛点一个是字段不固定,一个是组合方式多。用 mysql 原生语句写的时候,逻辑清晰点,维护起来也轻松。不管你是查status
、查date
还是查username
,都能灵活加进去,拼接也不麻烦。
你可以封装一个方法,比如接收一个params
对象,遍历它拼WHERE
条件。比如:
function buildQuery(params) {
let sql = 'SELECT * FROM users WHERE 1=1';
if (params.status) sql += ` AND status = '${params.status}'`;
if (params.name) sql += ` AND name LIKE '%${params.name}%'`;
return sql;
}
这样写虽然是原生 SQL,但逻辑简单清晰,不用 ORM 你也能写得优雅。响应也快,调试也方便。适合对性能比较敏感的查询场景。
如果你还想多了解多条件查询的其他实现方式,比如用 Access、SQL Server 甚至 Oracle 写的风格,也可以看看这些:
- Access 多条件查询功能详解
- 数据库基础多条件查询技巧详解
- 多条件查询示例数据库查询灵活筛选
- SQL Server 单表查询语句详解
- MySQL 单表查询案例的精选实例
- 数据库管理中的多条件查询技术
- 通用动态多条件查询方法的研究与实现
- Oracle SQL 条件查询技巧详解
如果你正在写查询逻辑,不妨用原生 SQL 试试,简单直接,有啥问题也容易排查。