Estoy tratando de obtener todos los códigos de promoción de una tabla, pero no estoy seguro de qué debemos usar para el parámetro de vinculación. Probé '*', ' ', '%%' y '%' pero los resultados salieron indefinidos/sin resultados. ¿Alguien sabe cómo obtener todos los resultados?
router.post('/getpromocodes', function(res){ mysqlx.getSession(stageConnectionmysqlx) .then(function(session){ var promoTable = session.getSchema('exampleTable').getTable('promo') promoTable .select(['promo_code', 'promo_percentage', 'expiration_date']) .where('promo_code like :promo_code') .bind('promo_code', '*') .execute() }) .then(function(result){ let data = result.fetchAll() console.log('Here is the data', data) res.send(data) }) .catch(function(err){ console.log('the following error occured: ' + err.message) }) })
¿Hay alguna razón específica para usar la cláusula where()
? Al final, el complemento X convertirá la operación CRUD en una declaración SQL usando LIKE
, por lo que está sujeto a las mismas limitaciones de sintaxis.
https://dev.mysql.com/doc/refman/8.0/en/pattern-matching.html
En el mejor de los casos, simplemente debe eliminar la cláusula where()
, como la siguiente:
promoTable.select(['promo_code', 'promo_percentage', 'expiration_date']) .execute()
El problema era dónde coloqué mi cierre } y ).
El .then debe venir justo después de la ejecución. Y como Rui describió para sacar todo de la tabla, no use los métodos .where y .bind.
router.post('/getpromocodes', function(res){ mysqlx.getSession(stageConnectionmysqlx) .then(function(session){ var promoTable = session.getSchema('exampleSchema').getTable('promo') promoTable .select(['promo_code', 'promo_percentage', 'expiration_date']) .execute() .then(function(result){ let data = result.fetchAll() console.log('Here is the data', data) res.send(data) }) }) .catch(function(err){ console.log('the following error occured: ' + err.message) }) })