Javascript 如果不为null,则在何处进行续集

Javascript 如果不为null,则在何处进行续集,javascript,sql,node.js,express,Javascript,Sql,Node.js,Express,假设我想用 其中ID=2134 但是如果用户不提供id,那么它就不应该麻烦使用WHERE id(因为它是空的) 我如何使用Sequelize处理这个问题 基本上,您的查询应该 WHERE fk_id=1234 OR fk_id is null 所以对于sequilize来说 const Op = Sequelize.Op; Model.findAll({ where: { fk_id: { [Op.or]: [1234, null] } }

假设我想用

其中ID=2134

但是如果用户不提供id,那么它就不应该麻烦使用WHERE id(因为它是空的)


我如何使用Sequelize处理这个问题

基本上,您的查询应该

WHERE fk_id=1234 OR fk_id is null
所以对于sequilize来说

const Op = Sequelize.Op;

Model.findAll({
   where: {
      fk_id: {
        [Op.or]: [1234, null]
      }
   }
});
以下是文件:
好的,我想我把这个问题搞错了。因此,如果提供了一个
id
参数,当我们返回由该
id
过滤的结果时,如果它不是返回所有结果。 像这样的

function getData(dataId) {
  let conditions = {};

  if (dataId) {
    conditions.where = { id: dataId };
  }

  return Model.findAll(conditions);
}

// The record with id = 1234
getData(1234).then(function(record) {
  // record readed here
});

// All records
getData().then(function(records) {
  // record readed here
});

我读了标题,它说,如果不是空的话。但是,我显示的不是NULL,而是NULL

我举个例子

    const cars = await Car.findAll({
    where: {
        userId: {
            [Op.in]: myUserIds, // array like userId IN [2, 3, 4]
        },
        action: 'start', // like: action = 'start'
        sellDate: {
            [Op.not]: null, // Like: sellDate IS NOT NULL
        },
        status: {
            [Op.is]: null, // Like: status IS NULL
        }
    },
    order: [
        ['id', 'DESC'] // Like: ORDER BY id DESC
    ],
    limit: 5, 
    offset: 1
});
有关详细信息,请参阅附件中的文件节点\u modules/sequelize/types/lib/operators.d.ts

我希望能帮助你

/**
*对象,该对象包含所有运算符符号
*/
声明常数:{
/**
*操作员-|-(PG范围与操作员相邻)
*
*```js
*[作品二]:[1,2]
* ```
*在SQL中
*`` sql
* -|- [1, 2)
* ```
*/
只读相邻:唯一符号;
/**
*总机
*
*```js
*[Op.gt]:{
*[Op.all]:文字('SELECT 1')
* }
* ```
*在SQL中
*`` sql
*>全部(选择1)
* ```
*/
只读全部:唯一符号;
/**
*操作员和
*
*```js
*[作品和]:{a:5}
* ```
*在SQL中
*`` sql
*和(a=5)
* ```
*/
只读和:唯一符号;
/**
*运算符任意数组(仅PG)
*
*```js
*[Op.any]:[2,3]
* ```
*在SQL中
*`` sql
*任意数组[2,3]::整数
* ```
*
*与任何数组类似的运算符(也适用于iLike和notLike)
*
*```js
*[Op.like]:{[Op.any]:['cat','hat']}
* ```
*在SQL中
*`` sql
*像任何数组一样['cat','hat']
* ```
*/
只读任何:唯一符号;
/**
*接线员
*
*```js
*[Op.Beween]:[6,10]
* ```
*在SQL中
*`` sql
*在6点到10点之间
* ```
*/
只读之间:唯一符号;
/**
*使用特定于方言的列标识符(本例中为PG)
*
*```js
*[Op.col]:'user.organization\u id'
* ```
*在SQL中
*`` sql
*=“用户”“组织机构id”
* ```
*/
只读列:唯一的符号;
/**
*操作员[1,2)
* ```
*/
只读包含:唯一符号;
/**
*类操作员
*
*```js
*[Op.endsWith]:“帽子”
* ```
*在SQL中
*`` sql
*像“%hat”
* ```
*/
只读结束符:唯一符号;
/**
*接线员=
*
*```js
*[Op.eq]:3
* ```
*在SQL中
*`` sql
* = 3
* ```
*/
只读eq:唯一符号;
/**
*操作员>
*
*```js
*[Op.gt]:6
* ```
*在SQL中
*`` sql
* > 6
* ```
*/
只读gt:唯一符号;
/**
*操作员>=
*
*```js
*[作品gte]:6
* ```
*在SQL中
*`` sql
* >= 6
* ```
*/
只读gte:唯一符号;
/**
*运算符ILIKE(不区分大小写)(仅PG)
*
*```js
*[Op.iLike]:“%hat”
* ```
*在SQL中
*`` sql
*我喜欢你的帽子
* ```
*/
只读iLike:唯一的符号;
/**
*接线员
*
*```js
*[Op.in]:[1,2]
* ```
*在SQL中
*`` sql
*[1,2]
* ```
*/
只读:唯一符号;
/**
*操作员~*(仅PG)
*
*```js
*[作品iRegexp]:“^[h|a|t]”
* ```
*在SQL中
*`` sql
*~*'^[h|a|t]'
* ```
*/
只读iRegexp:唯一符号;
/**
*接线员是
*
*```js
*[Op.is]:空
* ```
*在SQL中
*`` sql
*是空的
* ```
*/
只读是:唯一的符号;
/**
*类操作员
*
*```js
*[点评]:“%hat”
* ```
*在SQL中
*`` sql
*像“%hat”
* ```
*/
只读:独特的符号;
/**
*接线员<
*
*```js
*[作品lt]:10
* ```
*在SQL中
*`` sql
* < 10
* ```
*/
只读lt:唯一符号;
/**
*操作员[1,2)
* ```
*/
只读noExtendLeft:唯一符号;
/**
*操作员&<(PG范围不延伸至操作员右侧)
*
*```js
*[作品noExtendRight]:[1,2]
* ```
*在SQL中
*`` sql
* &< [1, 2)
* ```
*/
只读NoExtenderRight:唯一符号;
/**
*操作员不
*
*```js
*[点评]:对
* ```
*在SQL中
*`` sql
*事实并非如此
* ```
*/
只读非:唯一符号;
/**
*接线员不在中间
*
*```js
*[Op.NotBeween]:[11,15]
* ```
*在SQL中
*`` sql
*不在11到15岁之间
* ```
*/
只读notBetween:唯一符号;
/**
*运算符非ILIKE(不区分大小写)(仅PG)
*
*```js
*[Op.notILike]:“%hat”
* ```
*在SQL中
*`` sql
*我不喜欢帽子
* ```
*/
只读notILike:独特的符号;
/**
*接线员不在
*
*```js
*[Op.notIn]:[1,2]
* ```
*在SQL中
*`` sql
*不在[1,2]
* ```
*/
只读notIn:唯一符号;
/**
*操作员!~*(仅PG)
*
*```js
*[Op.notIRegexp]:“^[h|a|t]”
* ```
*在SQL中
*`` sql
*!~*'^[h | a | t]'
* ```
*/
只读notIRegexp:唯一符号;
/**
*操作员不喜欢
*
*```js
*[Op.notLike]:“%hat”
* ```
*在SQL中
*`` sql
*不像“%hat”
* ```
*/
只读notLike:唯一符号;
/**
*运算符非REGEXP(仅限MySQL/PG)
*
*```js
*[Op.notRegexp]:“^[h|a|t]”
* ```
*在SQL中
*`` sql
*不是REGEXP/!~'^[h | a | t]'
* ```
*/
只读notRegexp:唯一符号;
/**
*操作员或
*
*```js
*[Op.or]:[{a:5},{a:6}]
* ```
*在SQL中
*`` sql
*(a=5或a=6)
* ```
*/
只读或:唯一符号;
/**
*运算符&(PG数组重叠运算符)
*
*```js
*[作品.重叠]:[1,2]
* ```
*在SQL中
*`` sql
* && [1, 2)
* ```
*/
只读重叠:唯一符号;
/**
*内部占位符
*
*```js
*[操作占位符]:true
* ```
*/
雷亚
    const cars = await Car.findAll({
    where: {
        userId: {
            [Op.in]: myUserIds, // array like userId IN [2, 3, 4]
        },
        action: 'start', // like: action = 'start'
        sellDate: {
            [Op.not]: null, // Like: sellDate IS NOT NULL
        },
        status: {
            [Op.is]: null, // Like: status IS NULL
        }
    },
    order: [
        ['id', 'DESC'] // Like: ORDER BY id DESC
    ],
    limit: 5, 
    offset: 1
});