我有一个像这样的简单 mysql 数据表:
users:
user_id score
1 0
2 20
3 1430
4 820
5 170
我使用以下 mysql 查询来获取具有特定 user_id 的用户的排名:
SELECT FIND_IN_SET( score, (
SELECT GROUP_CONCAT( score
ORDER BY score DESC )
FROM users )
) AS rank
FROM users WHERE user_id = 4
并且在我的 mysql 中它正确地返回了我
rank
2
因为 user_id=4 在这里得分第二高。
但是相应的查询在nodejs中是什么样子的呢? 我的复制粘贴代码返回错误:
var query = connection.query('SELECT FIND_IN_SET( score, (
SELECT GROUP_CONCAT( score
ORDER BY score DESC )
FROM users )
) AS rank
FROM users WHERE user_id = 4', function(err, result){
console.log(err);
});
错误:
var query = connection.query('SELECT FIND_IN_SET( score, (
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Unexpected token ILLEGAL
最佳答案
如果不转义行返回或使用ES6 template,就不能在JavaScript中使用多行字符串。 。尝试一下
var query = connection.query("SELECT FIND_IN_SET( score, (\
SELECT GROUP_CONCAT( score\
ORDER BY score DESC ) \
FROM users )\
) AS rank\
FROM users WHERE user_id = 4", function(err, result){
console.log(err);
});
关于mysql - 如何在node js中使用mysql FIND_IN_SET?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36597983/