node-mysql中占位符?的使用

要mysql执行的命令串如果是固定的,那么不需要使用占位符,如果其中的一些参数允许在执行前可自由设定,那么使用占位符就很必要,这样你可以不需要由自己来拼接出一个完整的执行串,只需要在执行串模板上将占位符的参数设置成需要的值就可以了,由node-mysql来完成最终执行串的生成。

let sqlstr='select studentname from table where score >= ? and score <= ? '
connect.query(sqlstr,[85,100])

占位符??用于替换表名和字段名,占位符?用于替换字段值,注意了,每个占位符与你传入的参数要一一对应。

let sqlstr='select studentname from table where ?? >= ? and score <= ? '
connect.query(sqlstr,["score",85,100])

批量插入场景就最适合用占位符了。

let sqlstr='insert into table(studentname,gender,score) values ? '
indata=[
["张三","男",98],
["李四","女",95]
]
connect.query(sqlstr,[indata])

如果表比较宽,字段太多,写在模板串里太长,怕出错怎么办?这个自己把模板串拼接下:

let fileds=["f1","f2","f3","f4","f5","f6","f7","f8"];
let sqlcmd='insert into a('+fileds.join()+') values ?'

就插入一条记录,但是values来自几个不同的源,比如f1,f2来自item1,f3,f4,f5来自item2,f6,f7,f8来自item3,有简单的插入办法么?好办!

let fileds=["f1","f2","f3","f4","f5","f6","f7","f8"];
let sqlcmd='insert into a('+fileds.join()+') values (?,?,?)'
let item1=[1,2]
let item2=[3,4,5]
let item3=[6,7,8]
connect.query(sqlstr,[item1,item2,item3])

mysql.format是个好的测试工具,如果对字符串的书写不放心,没有把握,可以先在本地输出下mysql.format结果,不必直接发到mysql的DB上去执行检验。

const mysql = require("mysql"); 
let fileds=["f1","f2","f3","f4","f5","f6","f7","f8"];
let sqlcmd='insert into a('+fileds.join()+') values (?,?,?)'
let indata=[[1,2],[3,4,5],[6,7,8]]
console.log(mysql.format(sqlcmd,indata))
//输出 insert into a(f1,f2,f3,f4,f5,f6,f7,f8) values (1, 2,3, 4, 5,6, 7, 8)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/25124.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新型数据库技术一览

新型数据库技术是信息技术领域中不断发展和创新的一部分&#xff0c;它们旨在解决传统数据库系统面临的挑战&#xff0c;如大数据量的处理、实时分析、云服务集成、数据安全性和多模型支持等。以下是一些当前备受关注的新型数据库技术&#xff1a; NoSQL数据库&#xff1a; 非…

USB (2)

USB transaction 以2.0的枚举过程为例。 首先是TOKEN TRANSACTION&#xff0c;其次是DATA TRANSACTION&#xff0c;再次是Handshake Transaction。 上面的SETUP TRANSACTION是TOKEN TRANSACTION的一种。另外三种是OUT, IN, SOF。 在每个TRANSACTION中又包含了3个STAGE&#x…

在Windows中安装MinGW-w64

在Windows中安装MinGW-w64 总共两步&#xff1a; 下载mingw文件&#xff0c;官网较慢&#xff0c;有国内镜像解压下载的文件&#xff0c;放到想要安装的位置&#xff0c;然后在环境变量里面新建一个值&#xff0c;添加/bin目录 以前安装mingw是可以直接下载一个.exe安装文件…

如何在恢复出厂设置后从 Android 恢复照片

在某些情况下&#xff0c;您可能会考虑将 Android 设备恢复出厂设置。需要注意的是&#xff0c;恢复出厂设置后&#xff0c;所有设置、用户数据甚至应用程序数据都将被清除。因此&#xff0c;如果您将 Android 设备恢复出厂设置&#xff0c;甚至在里面留下了一些珍贵的照片&…

Debian13将正式切换到基于内存的临时文件系统

以前的内存很小&#xff0c;旅行者一号上的计算机内存只有68KB&#xff0c;现在的内存可以几十G&#xff0c;上百G足够把系统全部装载在内存里运行&#xff0c;获得优异的性能和极速响应体验。 很多小型系统能做到这一点&#xff0c;Linux没有那么激进&#xff0c;不过Debian …

java判断对象是否还在被引用

1、代码取消强引用后&#xff0c;gc回收对象 public static void main(String[] args) {Object obj new Object();WeakReference<Object> weakRef new WeakReference<>(obj);System.out.println(weakRef.get());obj null; // 取消强引用,后续gc会被回收,如果不…

1.基于-LABVIEW的自动售卖机开发(前面板)

1.项目简介 随着科技的进步和人们生活节奏的加快&#xff0c;自动售卖机在日常生活中扮演着越来越重要的角色。它们不仅提高了商品购买的便捷性&#xff0c;还节省了人力成本。为了实现更加智能化和高效的售卖服务&#xff0c;本项目旨在开发一款基于LabVIEW平台的自动售卖机系…

SpringBoot+Vue免税商品优选购物商城(前后端分离)

技术栈 JavaSpringBootMavenMySQLMyBatisVueShiroElement-UI 角色对应功能 用户商家 功能截图

Mysql学习(六)——函数

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 三、函数3.1 字符串函数3.2 数值函数3.3 日期函数3.4 流程函数 三、函数 函数是指一段可以直接被另一段程序调用的程序或代码。 3.1 字符串函数 MySQL中内置了很…

论文浅尝 | THINK-ON-GRAPH:基于知识图谱的深层次且可靠的大语言模型推理方法...

笔记整理&#xff1a;刘佳俊&#xff0c;东南大学硕士&#xff0c;研究方向为知识图谱 链接&#xff1a;https://arxiv.org/pdf/2307.07697.pdf 1. 动机 本文是IDEA研究院的工作&#xff0c;这篇工作将知识图谱的和大语言模型推理进行了结合&#xff0c;在每一步图推理中利用大…

Y2期末测试

目录 总结&#xff1a;题目1.划分区间2.序列操作题目描述&#xff1a;题解&#xff1a;代码&#xff1a; 3.划分区间题目描述&#xff1a;题解&#xff1a;代码&#xff1a; 4.数字匹配题目描述&#xff1a;题解&#xff1a;代码&#xff1a; 总结&#xff1a; 本次模拟未达到…

[图解]建模相关的基础知识-06

1 00:00:00,790 --> 00:00:03,480 下一个概念&#xff0c;就是基数的概念 2 00:00:04,390 --> 00:00:11,560 cardinality&#xff0c;表示有限集合中元素的数量 3 00:00:12,200 --> 00:00:14,790 我们可以用一个井号 4 00:00:14,800 --> 00:00:18,320 在前面表示…

数据结构--递归和数组

个人介绍 hello hello~ &#xff0c;这里是 code袁~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f981;作者简介&#xff1a;一名喜欢分享和记录学习的…

10.邮票问题

上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。https://www.iai.sh.cn/problem/625 题目描述 有四种面值的邮票,分别是 …

使用 Django 创建 App

文章目录 步骤 1&#xff1a;创建 Django 项目步骤 2&#xff1a;创建 App步骤 3&#xff1a;配置 App步骤 4&#xff1a;编写代码步骤 5&#xff1a;运行服务器 在 Django 中&#xff0c;App 是组织代码的基本单元&#xff0c;它可以包含模型、视图、模板等组件&#xff0c;帮…

树1----7-3 列出叶结点

对于给定的二叉树&#xff0c;本题要求你按从上到下、从左到右的顺序输出其所有叶结点。 输入格式&#xff1a; 首先第一行给出一个正整数 n&#xff08;≤10&#xff09;&#xff0c;为树中结点总数。树中的结点从 0 到 n−1 编号。随后 n 行&#xff0c;每行给出一个对应结…

Web前端编程网站:探索编程世界的新窗口

Web前端编程网站&#xff1a;探索编程世界的新窗口 在数字化时代的浪潮中&#xff0c;Web前端编程网站如雨后春笋般涌现&#xff0c;为编程爱好者们打开了一扇探索编程世界的新窗口。这些网站不仅提供了丰富的学习资源&#xff0c;还搭建了一个交流与分享的平台&#xff0c;让…

git版本控制工具常用命令

一、本地仓库管理 push 向远程推送代码 pulll 拉取代码 二、远程仓库管理 三、分支操作 本地主分支master 远程主分支main head指向当前分支 查看&#xff1a;git branch 创建分支: git branch 名字 切换分支&#xff1a;git checkout 名字 合并分支&#xff1a;git…

FPGA SPI采集ADC7606数据

一,SPI总线的构成及信号类型 SPI总线只需四条线(如图1所示)就可以完成MCU与各种外围器件的通讯: 1)MOSI – Master数据输出,Slave数据输入 2)MISO – Master数据输入,Slave数据输出 3)SCK – 时钟信号,由Master产生 4)/CS – Slave使能信号,由Master控制。 在一个SPI时…

gdb调试器

目录 一、前言 debug和release 二、调试操作 2.1、退出 quit 2.2、调试 run 2.3、打断点 b 2.4、查看断点 info b 2.5、查看代码 l 2.6、删除断点 d 2.7、逐过程 n 2.8、打印变量内容 p 2.9、逐语句&#xff08;进入函数&#xff09; s 2.10、查看函数调用堆栈 …