Phi*_*ter 6 mysql sequelize.js
假设我正在尝试YEAR_MONTH从user表中的记录中提取
我可以写:
SELECT EXTRACT(YEAR_MONTH FROM u.created_on)
FROM user u;
Run Code Online (Sandbox Code Playgroud)
我正在努力理解如何编写涉及更复杂的MySQL方法的续集查询.
我知道我可以使用类似的东西:
sequelize.fn('avg', sequelize.col('User.age')), 'avg_age']
对于只采用一个参数的简单MySQL方法.
这是我能得到的最接近的:
[sequelize.fn('extract', ['YEAR', 'FROM'],
sequelize.col('User.created_on')), 'created_year_month']
Run Code Online (Sandbox Code Playgroud)
这导致以下SQL:
extract('YEAR_MONTH', 'FROM', `User`.`created_on`) AS `created_year_month`
Run Code Online (Sandbox Code Playgroud)
而不是
SELECT EXTRACT(YEAR_MONTH FROM u.created_on)
FROM user u;
Run Code Online (Sandbox Code Playgroud)
关于如何正确构建此查询,我感到很遗憾.
我做了更多的挖掘,并意识到正确的解决方案是使用sequelize.literal()向我的 SQL 查询添加任意部分。
这里的解决方案是使用
sequelize.literal('extract(YEAR_MONTH FROM `User`.`created_on`) AS created_year_month')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1323 次 |
| 最近记录: |