0

我正在使用 XDEVAPI 并尝试在 javascript 中使用 or(||) 语句,但它似乎在 1 个 or/(||) 语句之后中断,我有 5 个单独的状态,我试图从数据库中提取:

.select(['customer_name',
         'account_status',
                  ])
         .where('customer_name like :customer_name && account_status like :account_status || account_status like :account_status || account_status like :account_status')
         .bind('customer_name', customer_name)
         .bind('account_status', 'Some_Status_1')
         .bind('account_status','Some_Status_2')
         .bind('account_status', 'Some_Status_3')
         .execute()

我可以使用 REGEXP 'Some_Status_1'|Some_Status_2'| ETC?

如果是这样,语法是什么?

还是我缺少另一种方法。

谢谢你尽你所能的帮助。

4

1 回答 1

1

我不认为这个问题与OR本身有关,而是与您使用重复占位符的事实有关。CRUD 样式 API 使用命名参数,如此所述。bind('account_status', 'something')通过多次调用,您只需替换account_status占位符的最后一个值。

为了做你想做的事(我认为),你需要使用不同的占位符名称。例如:

.select(['customer_name', 'account_status'])
  .where('customer_name like :customer_name && account_status like :account_status1 || account_status like :account_status2 || account_status like :account_status3')
  .bind('customer_name', customer_name)
  .bind('account_status1', 'Some_Status_1')
  .bind('account_status2', 'Some_Status_2')
  .bind('account_status3', 'Some_Status_3')
  .execute()

免责声明:我是 Node.js 的 MySQL X DevAPI 连接器的主要开发人员

于 2021-09-15T17:33:32.440 回答