首页 > 解决方案 > 在活动的 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.`);

标签: javascriptmysql

解决方案


我认为您所要求的理论上可以通过一个简单的表查询和正确的库来实现。但是使用 Node.js MySQL(我猜你正在使用),这似乎是不可能的。结果只是行,仅此而已。

此外,一旦您的查询变得更加复杂并包含多个表,就非常不清楚这将如何工作。

所以假设这只适用于单个表查询,为什么不只使用变量名呢?

如果您真的希望在查询结果中使用该表名,请将您的查询设置为...

SELECT *, 'test_table' as 'table_name' FROM test_table ORDER BY id

现在您的表名是您响应的一部分。


推荐阅读