MySQL ORM-条件WHERE子句

时间:2018-11-01 19:02:05

标签: mysql sequelize.js

我将sequelize用作MySQL ORM,并且具有以下代码:

 mysql().lib.query("SELECT t.id, t.address
                    FROM mytable t 
                    WHERE t.fname = :fname OR t.lname = :lname",
          replacements: { fname, lname })

fnamelname是可能未在代码中设置或设置为null的变量。 所以我的问题是-我如何才能在WHERE子句中使用它们中的一个或两个,但前提是它们“存在”?

(注意:其中肯定会有至少一个)

1 个答案:

答案 0 :(得分:1)

您可以使用简单的布尔逻辑做到这一点

WHERE (:fname is null or t.fname = :fname) 
  AND (:lname is null or t.lname = :lname)
   ^------ I used AND here since it does make more sense