【发布时间】:2016-08-02 18:29:30
【问题描述】:
我正在尝试使用 knex.js 和 MySql 执行以下查询
SELECT
m.id,
TIME(date_created) AS `timestamp`,
u.username,
m.`message`
FROM
`messages` AS m
INNER JOIN users AS u ON u.id = m.user_id
WHERE
m.game_id IS NULL
AND m.`date_created` > DATE_SUB(
CURRENT_TIMESTAMP (),
INTERVAL 12 HOUR
)
ORDER BY
m.`date_created` ASC
LIMIT 50
根据文档,为了正确处理 where 闭包中的表达式,例如 DATE_SUB(CURRENT_TIMESTAMP(), INTERVAL 12 HOUR),knex 中有 whereRow() 方法。
我尝试使用 select() 方法作为
select('messages.id', 'TIME(date_created) AS timestamp', 'users.username', 'messages.message')
但是 knex 以一种应该是列名的方式掩盖了 TIME(date_created) 表达式。有人知道在选择中使用自定义表达式的方法吗?
【问题讨论】:
标签: mysql node.js express bookshelf.js knex.js