我正在使用DBIx :: Class,並且我得到了一個ResultSet。我喜歡重新排序ResultSet。我喜歡根據固定的價值清單(「倫敦」,「紐約」,「東京」)檢查某個特定列「城市」。如果我希望將價值清單中的城市發現到最高組,如果找不到城市,我喜歡將結果移到ResultSet中的底層組。DBIx :: Class:結果集order_by基於列表中是否存在值
1
A
回答
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')] }}
);
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
+0
我找DBIC答案。 – aartist
相關問題
- 1. 別名DBIx :: Class結果集中兩列的總和
- 2. 許多表的一個結果集DBIx :: class
- 3. 使用DBIx :: Class,如何檢查表是否存在?
- 4. DBIx類:在結果集中重載new()
- 5. DBIx :: Class虛擬列?
- 6. DBIx :: Class :: Schema :: Loader ResultSource基類
- 7. 如何使用外部數據過濾DBIX :: Class結果集?
- 8. 如何在DBIx :: Class :: ResultSet上執行此搜索和order_by
- 9. DBIx :: Class:只選擇has_many大於零的結果
- 10. DBIx :: Class使用DBIx :: Class包裝/重載列訪問器
- 11. perl DBIx :: Class :: Schema
- 12. DBIx ::類抽象父結果集
- 13. DBIx ::類的結果集,而不選擇
- 14. 可變結果集基於
- 15. SQLite結果集是否在內存中的數據結構?
- 16. DBIx :: Class - 將只讀合成列(由SQL定義)添加到結果類中?
- 17. sql - 排除結果集的結果,其中表值等於
- 18. Java Servlet結果集查看錶是否已經存在
- 19. 基於集合交集過濾結果?
- 20. DBIx :: Class獲取dbh
- 21. DBIx :: Class做聯合?
- 22. DBIx :: Class和搜索
- 23. python - 檢查列表中是否存在確切的值集合
- 24. 使用列別名創建DBIx結果集
- 25. 搜索列表中是否存在值時出現奇怪的結果
- 26. DBIx :: Class和DBIx :: Abstract之間的區別?
- 27. 我該如何漂亮地打印DBIx :: Class結果?
- 28. 我應該從DBIx :: Class :: ResultSet :: *方法返回什麼結果?
- 29. 如何讓DBIx :: Class :: Schema :: Loader忽略非結果類?
- 30. DBIx ::類結果類別和實際表
使用哪個版本適用?它不適用於DBIx :: Class 0.08123。我也沒有在SQL :: Abstract中看到任何引用,但這可能沒有多大意義。 – aartist
是否可以在新字段上創建其他動態字段並執行order_by? – aartist
daxim添加的例子(感謝您的編輯,順便說一句,我的最後一句話有點含糊:)並不完全是它的意思。你可以爲order_by參數指定一個字符串引用,這樣你就可以建立一個字符串,比如「name ='London'desc,name ='Paris'desc,name ='Tokyo'desc」 – larsen