У меня есть запрос mysql, который выводит 6 столбцов связанных данных, меня особенно интересует сортировка результатов в алфавитном порядке по определенному измененному столбцу.Немодифицированные результаты из этого столбца выглядят так:
... | 0001: Some text here |...
... | 0002: Flipped text here |...
... | 0003: About some more text |...
Часть '0001:' не должна отображаться.В настоящее время у меня есть подпрограмма Perl, которая удаляет эту часть из отображаемого, но я не знаю, как можно отсортировать все строки в алфавитном порядке на основе этого результирующего столбца.То, что я искал, было бы:
... | About some more text |...
... | Flipped text here |...
... | Some text here |...
Вот то, что я использую для извлечения и отображения указанных данных, но моего понимания Perl крайне не хватает.Я не понимаю, как работает @ $ data, просто знаю, как это работает.Моя неудачная попытка сортировки закомментирована #.
$data = $sth->fetchall_arrayref();
$sth->finish;
foreach $data ( @$data) {
($a, $name, $c, $d, $e, $f) = @$data;
# @$data = sort { "\L$a->out_name([2])" cmp "\L$b->out_name([2])"} @$data;
$Response->Write($a.",".out_name($name).",".$c.",".$d.",".$e.",".$f."<br />");
}
Любая помощь или идеи будут высоко оценены, спасибо.
РЕДАКТИРОВАТЬ : я не заметилчасть «0001:» может отображаться как «511:» или «85000:», это число не является постоянной длиной.Если бы в Mysql был способ справиться с этим условием, это было бы превосходно.В моих поисках это не казалось возможным, поэтому я пытался сделать это с Perl.