mysql - 如何在 Knex 查询中执行 MySQL 函数?

标签 mysql node.js knex.js

我的表中有一个 BINARY 字段,我通常这样抓取它:

SELECT HEX(users.id) AS id FROM users WHERE username = ?

我最近开始使用 Knex,因为我需要能够从对象动态生成 WHERE 子句。这是我尝试过的:

knex('users').select('HEX(users.id) AS id)').where(filter);

这是它生成的查询:

select `HEX(users`.`id)` as `id` ....

然后我尝试了这个:

knex('users').select('HEX(`users`.`id`) AS id').where(filter);

结果是这样的:

select `HEX(``users```.```id``)` as `id` ....

如何执行 HEX() 而不会被误认为是列名?

最佳答案

使用 knex 来引用标识符,它看起来像这样:

knex('users').select(knex.raw('HEX(??) AS id', ['users.id'])).where(filter);

关于mysql - 如何在 Knex 查询中执行 MySQL 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44679846/

相关文章:

php - mysql_fetch_array() 不工作

php - 尝试在 <select> 中显示数据,但提交时数据库中没有显示任何内容

angularjs - IBM推送: cannot use sendNotificationByDeviceIds in ibmpush. js

postgresql - 正确的 postgres 锁以防止重复插入

javascript - 如何在使用 Knex.JS 添加字段时捕获错误

使用knex传输MYSQL数据库

php - 如何使用 PHP 或 MySQL 对一个表中的不同列求和并在另一个表中获取求和结果?

mysql - 从 --all-databases 转储导入单个数据库

node.js - 如何捕获 Meteor + NodeJs 应用程序中未处理的异常

node.js - 使用 Express 和 Sequelize 与 SQL Server 登录失败