如何将我的字符串替换为mysql.format?

时间:2018-07-09 12:46:16

标签: javascript mysql node.js

我对mysql.format有疑问。

我试图根据Java脚本中if语句的条件将字符串变量放入mysql.format。

例如。

var query = mysql.format(`SELECT * FROM employees WHERE ?
                          , [isAlwaystrue ? 1 : 'emp_no = 1']

但是使用这种方法,查询无法正常工作。

要找出问题,请查询mysql.format查询,如下所示。

SELECT * FROM employees WHRERE 'emp_no = 1';

看起来emp_no = 1被单个点包围。

我会寻求帮助。请

2 个答案:

答案 0 :(得分:0)

如果您使用字符串文字,则可以将语句更改为此

var query = mysql.format(`SELECT * FROM employees WHERE ?
                          , ${isAlwaystrue ? 1 : 'emp_no = 1'} 

答案 1 :(得分:0)

您可以使逻辑易于理解,并长期进行下去:

╔═════════════╦═══════════╦═══════════════════════╦═════════╦══════════╦════════╗
║    url      ║ category  ║        tags[]         ║ upvote  ║  title   ║  body  ║
╠═════════════╬═══════════╬═══════════════════════╬═════════╬══════════╬════════╣
║ third-post  ║ another   ║ {first,second,third}  ║      2  ║ Title 3  ║ Body 3 ║
╚═════════════╩═══════════╩═══════════════════════╩═════════╩══════════╩════════╝

或者您可以尝试更短的方法,但是使代码更混乱:

var query;
if (isAlwaystrue) {
    query = mysql.format(`SELECT * FROM employees`);
} else {
    query = mysql.format(`SELECT * FROM employees WHERE emp_no = 1`);
}