我正在尝试为 Mybatis 创建一个带有某些条件的动态查询语句。
这不是有效的查询语句,但它描述了我当前的情况。
SELECT * FROM myTemp WHERE name="Jin" if (
(name is null AND type = 0 ANd status = 2) OR (name is NOT NULL AND
type = 0 AND status =2 ) );
假设值“name”是动态值,如果名称不为空(不为空),则使用名称值执行查询,例如,
SELECT * FROM myTemp Where type = 0 AND status = 2 AND name ="someValue"
否则,如果名称为空或 null,则执行没有名称值的查询,例如,
SELECT * FROM myTemp where type = 0 AND status = 2.
如何根据上述条件创建 MySQL 查询语句?
最佳答案
您可以使用 COALESCE 函数来选择第一个非空值。像这样:
SELECT * FROM myTemp Where type = 0 AND status = 2 AND name = COALESCE("someValue", name)
这样,如果您给出“someValue”,它将与名称匹配。如果您给出 NULL 而不是“someValue”,它将匹配始终相等的名称。
关于mysql - 如何创建Mysql动态带条件查询语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52604798/