将原始 SQL 查询与 Sequelize ORM 和文字结合使用

2024-01-24

使用 Sequelize ORM,我尝试更新字段 level_id,其中该字段具有指向另一个名为 level_tbl 的表中的字段 Level 的外键。

 select * from level_tbl;
+----------+----------+
| level_id | Level    |
+----------+----------+
|        1 | Higher   |
|        2 | Ordinary |
+----------+----------+

我的更新任务如下所示,正如您所看到的,我正在尝试使用 Sequelize 获取原始 sql 查询作为文字。

  //Update task
    router.put("/task/:id", (req, res) => {
      if (!req.body) {
        res.status(400)
        res.json({
          error: "Bad Data....!"
        })
      } else {
        Task.update({
            Level: req.body.Level,
            Level_id: [sequelize.literal("SELECT level_id FROM level_tbl WHERE Level = 'Ordinary'")],
            Year: req.body.Year,
            Question: req.body.Question,
            Answer: req.body.Answer,
            Topic: req.body.Topic,
            Sub_topic: req.body.Sub_topic,
            Question_type: req.body.Question_type,
            Marks: req.body.Marks,
            Question_number: req.body.Question_number,
            Part: req.body.Part,
            Sub_part: req.body.Sub_part
          }, {
            where: {
              id: req.params.id
            }
          })
          .then(() => {
            res.send("Task Updated")
          })
          .error(err => res.send(err))
      }
    })

该行的正确语法是什么?

   Level_id: [sequelize.literal("SELECT level_id FROM level_tbl WHERE Level = 'Ordinary'")],

问题是我已经导入了一个模型并且可以访问全局 Sequelize 实例。因此,文档中的示例不适用这种方式,即

 order: sequelize.literal('max(age) DESC')

From https://sequelize.org/master/manual/querying.html https://sequelize.org/master/manual/querying.html

并且,

https://github.com/sequelize/sequelize/issues/9410#issuecomment-387141567 https://github.com/sequelize/sequelize/issues/9410#issuecomment-387141567

我定义模型的 Task.js 如下,

const Sequelize = require("sequelize")
const db = require("../database/db.js")

module.exports = db.sequelize.define(
  "physics_tbls", {
    id: {
      type: Sequelize.INTEGER,
      primaryKey: true,
      autoIncrement: true
    },
    Level: {
      type: Sequelize.STRING
    },
    Level_id: {
      type: Sequelize.INTEGER
    },
    Year: {
      type: Sequelize.INTEGER
    },
    .........
  }, {
    timestamps: false
  }
)

我正在使用 MEVN 堆栈 -> MySQL、Express.js、Vue.js 和 Node.js

任何帮助将不胜感激,

Thanks,


我需要在tasks.js 中再次要求Sequelize,该文件定义了快速路由。仅仅需要 Task.js 是不够的,尽管 Task.js 本身也需要续集。

const Sequelize = require('sequelize')
var express = require("express")
var router = express.Router()
const Task = require("../model/Task")

查询周围和双引号内还需要括号,

Level_id: Sequelize.literal("(SELECT level_id FROM level_tbl WHERE Level = 'Higher')"),
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将原始 SQL 查询与 Sequelize ORM 和文字结合使用 的相关文章

随机推荐

  • 初始化列表和运算符的 RHS

    我不明白为什么初始化列表不能在运算符的 RHS 上使用 考虑 class foo struct bar template
  • javafx拉伸图像以填充按钮?

    我正在用 Java JavaFX 编写一个 星际迷航 游戏 我的想法是主游戏屏幕是一个 10x10 的按钮网格面板 所有游戏部件 企业 克林贡 行星等 都将在按钮中显示为图标 这样 您可以单击一个空间对象来选择它 扭曲到它 射击它等等 当然
  • HttpWebRequest 与 HttpClient

    我有一段代码可以使用HttpWeb请求 and HttpWeb响应但我想将其转换为使用Http客户端 and Http响应消息 这是有效的代码块 HttpWebRequest request HttpWebRequest HttpWebRe
  • 为 OS X 构建虚拟相机

    我需要在 Skype 等程序中获取合成生成的视频流 音频部分很简单 有一个项目叫音花 https code google com p soundflower 这是一个适配器 它在一侧呈现虚拟音频目标设备 在另一侧呈现视频源 我正在为 OSX
  • 使用 Qt 显示 ubuntu (linux) 通知

    我正在使用 Qt 中的 Phonon 多媒体框架 它会弹出一条消息 就像改变音量时弹出的音量通知消息 因为我的音频设备尚未完全配置 是否可以从 Qt 启动我自己的通知 请看上图 非常感谢 AFAIK 使用 libnotify 是可行的方法
  • 如何获取最接近的元素id属性

    我试图找到最接近的具有 id 属性的元素并获取id 该元素可以是 p p div 或其他元素 我努力了 element test closest div id attr id 但只有当元素是 a 时它才会获取 iddiv 我想变得更加普遍
  • 为什么不读/写其内容的结构体的方法仍然会导致竞争情况?

    From 戴夫 切尼博客 http dave cheney net 2015 11 18 wednesday pop quiz spot the race 以下代码显然会导致竞争情况 只需更改即可解决func RPC version int
  • NTP 对于分布式时间同步有多好?

    NTP 用于保持一组服务器时间同步的准确度如何 我正在编写一项服务 需要一组服务器 一些充当客户端 一些充当服务器 同步到二级粒度 我想知道 NTP 是否是最好使用的东西 或者是否有更好的东西 我应该在其中一个上运行 ntp 服务器 并让其
  • 如何从多个接口组成一个 WCF 合约?

    我有多个接口 所有这些都应该由单个合约接口继承和公开 interface A void X interface B void Y interface C A B this is the public contract 这怎么可能 我无法将
  • 如何将 Visual Studio .NET 2008 解决方案转换为 Visual Studio .NET 2005?

    假设解决方案仅包含类 并且这些类全部按照 NET 2 0 规范编写 如果要在 Visual Studio 2008 中打开 转换和保存该解决方案 是否可以稍后在 Visual Studio 2005 中重新打开该解决方案 并对 SLN 文件
  • 根据多年每日天气数据计算每日平均值?

    我有从 1984 年到 2014 年 31 年的每日数据 我想计算变量的 31 年的每日平均值 date Min daily Max daily Rain daily 01 01 1984 18 8 3 6 0 02 01 1984 20
  • 将 DataGridView 内容复制到剪贴板

    我想复制 DataGridView 的内容并将其粘贴到 Excel 中 我试过 myDataGrid SelectAll DataObject dataObj myDataGrid GetClipboardContent Clipboard
  • android中如何保存数据结构?

    我想存储这样的结构中的一些数据 class Project ChildA a ChildB b class ChildA ChildC c 我创建了如下数据 Projet x new Project x a new ChildA x a c
  • Tensorflow 2.0 数据集和数据加载器

    我是一个pytorch用户 我习惯了pytorch中的data dataset和data dataloader api 我正在尝试使用tensorflow 2 0构建相同的模型 我想知道pytorch中是否有与这些api类似的api 如果没
  • 如何检查网络端口是否开放?

    我如何使用 python 知道 linux ubuntu 而不是远程系统 上的某个端口是否打开 关闭 如何在 python 中列出这些开放端口 网络统计 有没有办法将 netstat 输出与 python 集成 您可以使用插座模块 http
  • 使 Google 可视化 - 注释图表在 GWT 中工作

    我正在使用新发布的注释图表 https developers google com chart interactive docs gallery annotationchart在 gwt 中通过调用本机 javascript 到目前为止我得
  • 在 RecyclerView 上快速点击(点击)会打开多个 Fragments

    我已经为 RecyclerView 的 ViewHolder 实现了 onClick 侦听器 但是 当我执行非常快速的双击或鼠标单击时 它会执行该任务 在本例中打开一个单独的片段 两次或三次 这是我的代码 public class View
  • lambda 的仅类型模板参数

    想象一下我有这个结构 struct Foo operator int return 11 operator unsigned int return 22 foo 当此结构体转换为 int 时 它返回 11 但当转换为 unsigned in
  • 如何在 emacs 中获得“彩虹括号”?

    我想要在 Emacs 中编辑 Clojure 的彩虹括号 因为六是这样做的 http www vim org scripts script php script id 1230我认为在 Emacs 中它应该是类似 M x Butterfly
  • 将原始 SQL 查询与 Sequelize ORM 和文字结合使用

    使用 Sequelize ORM 我尝试更新字段 level id 其中该字段具有指向另一个名为 level tbl 的表中的字段 Level 的外键 select from level tbl level id Level 1 Highe