首页 > 解决方案 > 在动态列名mysql中转义句号

问题描述

const newDb = "dbtest";
const columns = ["test.TABLE"];
for (var i = 0; i < columns.length; i++) {
  const column = `${columns[i]}_new`;
  console.log(require("mysql").format("SELECT * FROM ??.??",[newDb, column]));
}

如何使字符串成为?dbtest. test.TABLE而不是dbtest. test.table

如何保持. ?

mysql格式化程序分裂得很厉害,在仍然使用准备好的语句时这可能吗?

标签: mysqlnode.js

解决方案


如果用反引号分隔标识符,则可以在标识符中使用标点符号或其他符号:

SELECT * FROM `??`.`??`

我原以为字符串替换 node.js 确实应该已经处理了该分隔符。也许您需要告诉 node.js 您正在使用 MySQL 风格的 SQL?

就个人而言,我会避免用标点符号命名表格。或使用_,因为不需要任何特殊处理。


推荐阅读