Estoy usando XDEVAPI y tratando de usar la declaración o (||) en javascript, pero parece romperse después de 1 o/(||) declaraciones, tengo 5 estados separados que estoy tratando de extraer de la base de datos:
.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()
¿Puedo usar REGEXP 'Some_Status_1'|Some_Status_2'| ¿etc?
Si es así, ¿cuál sería la sintaxis?
O hay otro método que me falta.
Gracias por cualquier ayuda que pueda ofrecer.
No creo que el problema esté relacionado con OR
per se, sino con el hecho de que está utilizando marcadores de posición duplicados. Las API de estilo CRUD usan parámetros con nombre, como se describe aquí . Al llamar bind('account_status', 'something')
varias veces, simplemente está reemplazando el último valor del marcador de posición de account_status
.
Para hacer lo que quiere (creo), necesita usar diferentes nombres de marcador de posición. Por ejemplo:
.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()
Descargo de responsabilidad: soy el desarrollador principal del conector MySQL X DevAPI para Node.js