MYSQL XDev API Javascript 从表中全选
Posted
技术标签:
【中文标题】MYSQL XDev API Javascript 从表中全选【英文标题】:MYSQL XDev API Javascript Select all from a table 【发布时间】:2021-10-08 18:23:06 【问题描述】:我正在尝试从表中获取所有促销代码,但我不确定我们应该为绑定参数使用什么。我尝试了“*”、“”、“%%”和“%”,但结果未定义/没有结果。有人知道如何获得所有结果吗?
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)
)
)
【问题讨论】:
【参考方案1】:使用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()
【讨论】:
我进行了上述更改,并在我的代码中添加了一个 console.log(session.inspect) 并且表中有数据。 (1行用于测试)。这是我得到的: auth: 'MYSQL41', host: '193.122.179.108', pooling: false, port: 33060, schema: undefined, socket: undefined, tls: false, user: 'robot', dbUser: [Getter], ssl: [Getter] Here is the result undefined the following error occured: Cannot read property 'fetchAll' of undefined
我不确定我是否理解这个问题。也许你我们可以把这个讨论转移到 MySQL 社区 Slack。这样,您应该能够提供更多更好的上下文。【参考方案2】:
问题在于我将结束的 和 ) 放在哪里。
.then 需要在执行后立即出现。正如 Rui 所描述的从表中提取所有内容,不要使用 .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)
)
)
【讨论】:
以上是关于MYSQL XDev API Javascript 从表中全选的主要内容,如果未能解决你的问题,请参考以下文章
使用 PHP foreach 循环的 javascript 中的 MySQL 数据(Google Maps API)
从 MySql 在 php 中创建 GeoJson 以与 MapBox javascript API 一起使用
Javascript 到 PHP PDO 到 MySQL 查询返回空