我对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被单个点包围。
我会寻求帮助。请
答案 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`);
}