我有一個包含名稱的100萬條記錄的表。我希望能夠按名稱中的第一個字母對列表進行排序。如何根據標題的第一個字母對100萬條記錄的列表進行排序
.. ABCDEFGHIJKLMNOPQRSTUVWXYZ
設置的最有效方法是什麼db表允許通過在table.name領域的第一個字符搜索?
現在最好的想法是添加一個額外的字段,它將名稱的第一個字符存儲爲觀察者,索引該字段,然後按該字段進行排序。問題是不再需要按字母順序排列。
有什麼建議嗎?
我有一個包含名稱的100萬條記錄的表。我希望能夠按名稱中的第一個字母對列表進行排序。如何根據標題的第一個字母對100萬條記錄的列表進行排序
.. ABCDEFGHIJKLMNOPQRSTUVWXYZ
設置的最有效方法是什麼db表允許通過在table.name領域的第一個字符搜索?
現在最好的想法是添加一個額外的字段,它將名稱的第一個字符存儲爲觀察者,索引該字段,然後按該字段進行排序。問題是不再需要按字母順序排列。
有什麼建議嗎?
我同意上面的問題,爲什麼你要想要做到這一點 - 整個領域的正則指數在功能上是等價的。 PostgreSQL的(與V 9一些新的)有,你可能想了解這裏http://www.postgresql.org/docs/9.1/interactive/sql-createindex.html
您的評論說,在特殊情況下一些比較強大的索引功能:
所以讓我們忽略第一字母部分。我怎樣才能以A開頭的所有記錄?所有A的沒有B ... Z?謝謝 - AnApprentice 2月21日15時30分
我issume你的意思How can I RETURN all records...
這就是答案:
select * from t
where substr(name, 1, 1) = 'A'
爲什麼只有第一個字母? *「aardvark」*和*「aardwolf」應該如何排序?只需指定一個ORDER BY子句,數據庫就可以使用詞法順序輕鬆地對整個文本字段進行排序。 – deceze 2012-02-21 06:57:18
排序是否花費了不合理的時間(可能是你經常排序)?你在名稱列上有適當的索引嗎? – Seth 2012-02-21 06:58:53
我如何通過字母A進行訂單,其中A是table.name字段中的第一個字符? – AnApprentice 2012-02-21 07:05:00