MYSQL XDev API Javascript Select 全部来自table

MYSQL XDev API Javascript Select all from a table

我正在尝试从 table 中获取所有促销代码,但我不确定我们应该为绑定参数使用什么。我尝试了 '*'、' '、'%%' 和 '%' 但结果出来了 undefined/no 个结果。任何人都知道如何获得所有结果?

  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)
            })
            
    
    })

是否有使用 where() 子句的特定原因?最后,X Plugin 会将 CRUD 操作转换为使用 LIKE 的 SQL 语句,因此您将受到相同语法限制的约束。

https://dev.mysql.com/doc/refman/8.0/en/pattern-matching.html

在最好的情况下,您应该只删除 where() 子句,如下所示:

promoTable.select(['promo_code', 'promo_percentage', 'expiration_date'])
  .execute()

问题是我把结束符 } 和 ) 放在哪里了。

.then 需要在执行后立即出现。正如 Rui 所描述的从 table 提取所有内容,不要使用 .where 和 .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)
        })
})