我有一個數據庫,我想根據包含在每個字段中的單詞數量對列進行排序。mysql排序問題
例:
a b (has 2 words)
a b c d e (has 5 words)
a b c (has 3 words)
,我想 'A B C d E' 是在排序結果的第一,和 'A B C' 的第二個。 ..等
你有解決方案嗎?
編輯:感謝球員們的quicly答案! 所有答案是好的,但同時,我解決了使用這裏找到mysql-substr-count
我有一個數據庫,我想根據包含在每個字段中的單詞數量對列進行排序。mysql排序問題
例:
a b (has 2 words)
a b c d e (has 5 words)
a b c (has 3 words)
,我想 'A B C d E' 是在排序結果的第一,和 'A B C' 的第二個。 ..等
你有解決方案嗎?
編輯:感謝球員們的quicly答案! 所有答案是好的,但同時,我解決了使用這裏找到mysql-substr-count
這應該做的伎倆,但也許有一個更好的(快)解決方案:
SELECT *
FROM table
ORDER BY LENGTH(column) - LENGTH(REPLACE(column, ' ', ''))
相同sollutions您可以通過空格數量排序:
order by length(field) - length(replace(field, ' ', '')) desc
你最有可能錯了你的數據庫結構。如果你問這樣一個問題。
這樣的數字應該取自數據庫結構,而不是字段內容。
由於這樣糟糕的設計的直接結果是上述答案中所有查詢的可怕表現。
嚴重的是,溝渠該架構。如果你發現自己不得不單獨處理某個專欄中的項目,那麼你做錯了一件事。 – paxdiablo 2010-08-31 07:59:35
您在鏈接中找到的解決方案已在答案中給出... – knittl 2010-08-31 08:38:21