MySQL在哪里if语句

时间:2015-12-05 02:02:28

标签: mysql sql node.js node-mysql

我目前正在使用node.jsnode-mysql处理API。

我首先抓住客户端发送的所有参数,如下所示:

  var userId = req.query.userId;
  var carType = req.query.carType;
  var hasOwnership = req.query.hasOwnership; (optional parameter)

我想做的是做一个声明,这样如果客户端发送带有请求的hasOwnership参数,我的声明将返回属于他的所有车辆的特定车型。与此类似:

SELECT * FROM cars WHERE car_type=? AND owner_id=?, [carType, userId];

否则它将返回与汽车类型匹配的所有汽车:

SELECT * FROM cars WHERE car_type=?, [carType];

是否可以在单个查询中完成类似的操作?

提前致谢!

2 个答案:

答案 0 :(得分:1)

您可以将查询标记为以下内容:

SELECT *
FROM car
WHERE (? is null or car_type = ?) AND
      (? is null or owner_id = ?);

请注意,此版本将每个参数两次,除非您使用命名参数。

答案 1 :(得分:0)

一个简单的快速解决方案是使用if then else。

如果hasOwnership具有值,则使用查询#1否则使用查询#2