我的代码有一点问题。 通常我的代码应该显示击杀次数最多的玩家。 它应该看起来像这样
user1 10
user3 9
user6 4
user10 1
user2 0
但它只是随机排序的。
这是我的代码:
if (mysql_query(&mysql, "SELECT Name, Kills FROM userdata ORDER BY (Kills) DESC LIMIT 0,10;"))
{
printf("ok");
}
MYSQL_RES *result = mysql_store_result(&mysql);
if (result == NULL)
{
printf("Result is null");
}
int num_fields = mysql_num_fields(result);
MYSQL_ROW row;
int i;
num_fields = mysql_num_fields(result);
while ((row = mysql_fetch_row(result)))
{
unsigned long *lengths;
lengths = mysql_fetch_lengths(result);
for(i = 0; i < num_fields; i++)
{
printf("%.*s", (int) lengths[i],
row[i] ? row[i] : "NULL");
}
printf(" \n");
}
希望你能帮助我!
最佳答案
在您的代码中,您似乎想要选择 0 行偏移量 10。然后尝试仅使用 limit 10 来获取前 10 行
SELECT Name, Kills FROM userdata ORDER BY Kills DESC LIMIT 10;
同时删除无用的 ()
关于C++ mysql order by 不是有序的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46022497/