在python中使用itemgetter或lambda进行排序时,有没有一种方法可以从字符串转换为整数?
我有一个字典,所有id都是字符串(id_categ,id_macrocateg,id_microcateg)。我不想迭代所有的dict来将它们转换成整数,然后对它们进行排序。我想知道是否有一种方法可以使用itemgetter或lambda在排序时将所有ID转换为int 字典列表的一个示例如下(实际上,该列表可以动态更改): 我想要的输出是:在python中使用itemgetter或lambda进行排序时,有没有一种方法可以从字符串转换为整数?,python,dictionary,lambda,Python,Dictionary,Lambda,我有一个字典,所有id都是字符串(id_categ,id_macrocateg,id_microcateg)。我不想迭代所有的dict来将它们转换成整数,然后对它们进行排序。我想知道是否有一种方法可以使用itemgetter或lambda在排序时将所有ID转换为int 字典列表的一个示例如下(实际上,该列表可以动态更改): 我想要的输出是: l_dictt = [ {'id_categ': '1', 'id_macrocateg': '1', 'i
l_dictt = [
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '1'},
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '111'},
{'id_categ': '14', 'id_macrocateg': '1', 'id_microcateg': '35'},
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '9'},
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '19'},
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '26'},
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '4'},
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '16'},
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '17'},
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '20'},
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '21'},
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '24'},
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '31'},
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '11'},
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '12'},
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '13'},
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '10'},
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '27'},
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '28'},
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'},
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'},
{'id_categ': '2', 'id_macrocateg': '50', 'id_microcateg': '554'}]
如果这3个键是整数,正如我希望先按id_macrocateg排序,然后按id_categ排序,最后按id_microcateg排序,我可以这样做:
for dictt in sorted(l_dictt, key=itemgetter('id_macrocateg', 'id_categ', 'id_microcateg'):
print(dictt)
但由于这些是字符串,我不能这样做
我试过:
from operator import itemgetter
for dictt in sorted(l_dictt, key=lambda x: int(itemgetter("id_macrocateg, id_categ, id_microcateg")(x))):
print(dictt)
还有:
from operator import itemgetter
for dictt in sorted(l_dictt, key=lambda x: int(itemgetter("id_macrocateg")(x)),int(itemgetter("id_categ")(x))),int(itemgetter(("id_microcateg")(x))):
print(dictt)
更新问题后的回答: 现在,您希望列表按照id_macrocateg、id_categ和id_microcateg进行排序,因此我们通过以下方式获得它:
sorted(l_dictt, key=lambda x: x['id_macrocateg'].zfill(10)+x['id_categ'].zfill(10)+x['id_microcateg'].zfill(10))
在这里,我假设最大位数可能是10位数“9999999999”,如果需要,我们当然可以进行更新
结果
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '1'}
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '111'}
{'id_categ': '14', 'id_macrocateg': '1', 'id_microcateg': '35'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '9'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '19'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '26'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '4'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '16'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '17'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '20'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '21'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '24'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '31'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '11'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '12'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '13'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '10'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '27'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '28'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
{'id_categ': '2', 'id_macrocateg': '50', 'id_microcateg': '554'}
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '1'}
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '111'}
{'id_categ': '2', 'id_macrocateg': '50', 'id_microcateg': '554'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '11'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '12'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '13'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '10'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '27'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '28'}
{'id_categ': '14', 'id_macrocateg': '1', 'id_microcateg': '35'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '9'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '19'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '26'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '4'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '16'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '17'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '20'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '21'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '24'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '31'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
更新问题前的初始答案:
您可以按id\u categ
的值对该字典进行排序,同时保持其值不变,如下所示:
for dictt in sorted(l_dictt, key=lambda x: int(x['id_categ'])):
print(dictt)
结果
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '1'}
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '111'}
{'id_categ': '14', 'id_macrocateg': '1', 'id_microcateg': '35'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '9'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '19'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '26'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '4'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '16'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '17'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '20'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '21'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '24'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '31'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '11'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '12'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '13'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '10'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '27'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '28'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
{'id_categ': '2', 'id_macrocateg': '50', 'id_microcateg': '554'}
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '1'}
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '111'}
{'id_categ': '2', 'id_macrocateg': '50', 'id_microcateg': '554'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '11'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '12'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '13'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '10'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '27'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '28'}
{'id_categ': '14', 'id_macrocateg': '1', 'id_microcateg': '35'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '9'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '19'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '26'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '4'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '16'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '17'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '20'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '21'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '24'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '31'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
更新问题后的回答: 现在,您希望列表按照id_macrocateg、id_categ和id_microcateg进行排序,因此我们通过以下方式获得它:
sorted(l_dictt, key=lambda x: x['id_macrocateg'].zfill(10)+x['id_categ'].zfill(10)+x['id_microcateg'].zfill(10))
在这里,我假设最大位数可能是10位数“9999999999”,如果需要,我们当然可以进行更新
结果
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '1'}
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '111'}
{'id_categ': '14', 'id_macrocateg': '1', 'id_microcateg': '35'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '9'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '19'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '26'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '4'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '16'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '17'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '20'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '21'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '24'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '31'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '11'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '12'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '13'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '10'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '27'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '28'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
{'id_categ': '2', 'id_macrocateg': '50', 'id_microcateg': '554'}
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '1'}
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '111'}
{'id_categ': '2', 'id_macrocateg': '50', 'id_microcateg': '554'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '11'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '12'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '13'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '10'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '27'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '28'}
{'id_categ': '14', 'id_macrocateg': '1', 'id_microcateg': '35'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '9'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '19'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '26'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '4'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '16'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '17'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '20'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '21'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '24'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '31'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
更新问题前的初始答案:
您可以按id\u categ
的值对该字典进行排序,同时保持其值不变,如下所示:
for dictt in sorted(l_dictt, key=lambda x: int(x['id_categ'])):
print(dictt)
结果
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '1'}
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '111'}
{'id_categ': '14', 'id_macrocateg': '1', 'id_microcateg': '35'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '9'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '19'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '26'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '4'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '16'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '17'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '20'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '21'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '24'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '31'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '11'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '12'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '13'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '10'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '27'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '28'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
{'id_categ': '2', 'id_macrocateg': '50', 'id_microcateg': '554'}
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '1'}
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '111'}
{'id_categ': '2', 'id_macrocateg': '50', 'id_microcateg': '554'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '11'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '12'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '13'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '10'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '27'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '28'}
{'id_categ': '14', 'id_macrocateg': '1', 'id_microcateg': '35'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '9'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '19'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '26'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '4'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '16'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '17'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '20'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '21'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '24'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '31'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
您的第三次尝试只是缺少一些括号,以确保对
int
的所有三个调用都是lambda
表达式主体的一部分
from operator import itemgetter
for dictt in sorted(l_dictt, key=lambda x: (int(itemgetter("id_macrocateg")(x)),
int(itemgetter("id_categ")(x))),
int(itemgetter(("id_microcateg")(x))):
print(dictt)
虽然itemgetter
实际上只是在这里设置了障碍
for dictt in sorted(l_dictt, key=lambda x: (int(l_dictt["id_macrocateg"]),
int(l_dictt["id_categ"]),
int(l_dictt["id_microcateg"]):
print(dictt)
您可以将map
与itemgetter
一起使用,类似于您的第二次尝试:
from operator import itemgetter
# Splitting up for readability
getter = itemgetter("id_macrocateg", "id_categ", "id_microcateg")
for dictt in sorted(l_dictt, key=lambda x: tuple(map(int, getter(x))):
print(dictt)
尽管同样,具有键列表的生成器表达式可能更简单:
keys = ("id_macrocateg", "id_categ", "id_microcateg")
for dictt in sorted(l_dictt, key=lambda x: [int(x[k]) for k in keys]):
(使用列表只是因为没有元组理解;列表和元组排序方式相同。)您的第三次尝试只是缺少一些括号,以确保对
int
的所有三个调用都是lambda
表达式主体的一部分
from operator import itemgetter
for dictt in sorted(l_dictt, key=lambda x: (int(itemgetter("id_macrocateg")(x)),
int(itemgetter("id_categ")(x))),
int(itemgetter(("id_microcateg")(x))):
print(dictt)
虽然itemgetter
实际上只是在这里设置了障碍
for dictt in sorted(l_dictt, key=lambda x: (int(l_dictt["id_macrocateg"]),
int(l_dictt["id_categ"]),
int(l_dictt["id_microcateg"]):
print(dictt)
您可以将map
与itemgetter
一起使用,类似于您的第二次尝试:
from operator import itemgetter
# Splitting up for readability
getter = itemgetter("id_macrocateg", "id_categ", "id_microcateg")
for dictt in sorted(l_dictt, key=lambda x: tuple(map(int, getter(x))):
print(dictt)
尽管同样,具有键列表的生成器表达式可能更简单:
keys = ("id_macrocateg", "id_categ", "id_microcateg")
for dictt in sorted(l_dictt, key=lambda x: [int(x[k]) for k in keys]):
(使用列表只是因为没有元组理解;列表和元组排序方式相同。)
lambda x:tuple(map(int,x.values())
?itemgetter
如果Python支持函数组合,例如排序(l_dict,key=int),在这种情况下会更好∘itemgetter(“id\u macrocateg”)
。在国际海事组织中,运营商确实有必要获得全部利益key=compose(int,itemgetter(“id_macrocateg”)
似乎仍然太冗长了。@SayandipDutta假设(dict
中的每个值都可以转换为int
,无论是否必要)。进行大量不必要的int
调用也可能代价高昂。但最重要的是,它在id\u-categ
之前对id\u-macrocateg进行排序。对于多列,key=partial(map,int)∘itemgetter(“id\u macrocateg”、“id\u categ”、“id\u microcateg”)
lambda x:tuple(map(int,x.values())
?itemgetter
如果Python支持函数组合,例如排序(l\u dict,key=int),在这种情况下会更好∘itemgetter(“id\u macrocateg”)
。在国际海事组织中,运营商确实有必要获得全部利益key=compose(int,itemgetter(“id_macrocateg”)
似乎仍然太冗长了。@SayandipDutta假设(dict
中的每个值都可以转换为int
,无论是否必要)。进行大量不必要的int
调用也可能代价高昂。但最重要的是,它在id\u-categ
之前对id\u-macrocateg进行排序。对于多列,key=partial(map,int)∘itemgetter(“id\u macrocateg”、“id\u categ”、“id\u microcateg”)
。谢谢,但问题是id\u macrocateg没有订购。我想先按id_macrocateg订购,然后按id_categ订购,最后按id_microcateg订购。我编辑了这个问题,以便更好地解释我需要什么。在我发布了答案后,您已经修改了您的问题。谢谢,但问题是id_macrocateg没有排序。我想先按id_macrocateg订购,然后按id_categ订购,最后按id_microcateg订购。我编辑了这个问题,以便更好地解释我需要什么。在我发布答案后,您已经修改了您的问题。