javascript - 在活动的 mysql 查询中调用数据库的名称
问题描述
这可能是一个基本问题,但我找不到答案..
如何在无需手动定义的情况下引用自己查询中调用的表的名称。
现在我用
const mysqlDB = require(`../../../functions/mysql.js`);
sql = "SELECT * FROM test_table ORDER BY id";
mysqlDB.query(sql, function (err, result) {
if (err) throw err;
message.reply(`Returning **${result.length}** results from **test_table** table.`);
我知道如何引用被调用的表名的唯一方法是像这样定义,如果可能的话我想避免
const mysqlDB = require(`../../../functions/mysql.js`);
sql.table = test_table;
sql = `SELECT * FROM ${sql.table} ORDER BY id`;
mysqlDB.query(sql, function (err, result) {
if (err) throw err;
message.reply(`Returning **${result.length}** results from **${test_table}** table.`);
解决方案
我认为您所要求的理论上可以通过一个简单的表查询和正确的库来实现。但是使用 Node.js MySQL(我猜你正在使用),这似乎是不可能的。结果只是行,仅此而已。
此外,一旦您的查询变得更加复杂并包含多个表,就非常不清楚这将如何工作。
所以假设这只适用于单个表查询,为什么不只使用变量名呢?
如果您真的希望在查询结果中使用该表名,请将您的查询设置为...
SELECT *, 'test_table' as 'table_name' FROM test_table ORDER BY id
现在您的表名是您响应的一部分。
推荐阅读
- mysql - 更优雅的连接方式?
- sql - regexp_substr 中的 sub# 是什么意思
- flutter - 如何解决子重复错误?
- azure-ad-b2c - Azure B2C 登录提示不正确
- vba - VBA(32 位)调用 x86(32 位)DLL (C++) 继续失败并显示“类型不匹配”
- python - 如何比较两个不同数据框中的系列值并插入新值?
- r - 使用 glmmTMB 拟合具有两个分类变量之间交互作用的混合模型
- c++ - glTF 骨骼矩阵是在局部空间还是模型空间中指定的?
- rundeck - Rundeck Job List View插件安装问题
- java - 带有自定义数组列表的空对象引用。在哪里实例化?