DBIx :: Classを使用していて、ResultSetを取得しています。ResultSetを並べ替えるのが好きです。特定の列「City」を値の修正リスト(「London」、「New York」、「Tokyo」)と照合するのが好きです。値のリストに都市が見つかった場合、その結果をトップグループに移動します。都市が見つからない場合は、その結果をResultSetの一番下のグループに移動します。
2 に答える
1
ORDER BY exprが探しているものかもしれません。
たとえば、次の表があります。
mysql> select * from test;
+----+-----------+
| id | name |
+----+-----------+
| 1 | London |
| 2 | Paris |
| 3 | Tokio |
| 4 | Rome |
| 5 | Amsterdam |
+----+-----------+
ここで特別注文:
mysql> select * from test order by name = 'London' desc,
name = 'Paris' desc,
name = 'Amsterdam' desc;
+----+-----------+
| id | name |
+----+-----------+
| 1 | London |
| 2 | Paris |
| 5 | Amsterdam |
| 3 | Tokio |
| 4 | Rome |
+----+-----------+
これを ResultSet メソッドに変換します。
$schema->resultset('Test')->search(
{},
{order_by => {-desc => q[name in ('London', 'New York', 'Tokyo')] }}
);
于 2011-11-08T15:05:03.900 に答える
0
何かのようなもの:
#!/usr/bin/env perl
use strict;
use warnings;
my $what = shift or die;
my @ary = qw(alpha beta gamma);
unshift(@ary,$what) unless ( grep(/$what/,@ary) );
print "@ary\n";
1;
次のように実行します。
./myscript omega
于 2011-11-08T00:13:11.677 に答える