2
我有一個數據庫的MySQL的ORDER BY CASE但要重複
| Field | Type | Null | Key | Default | Extra |
| word | varchar(60) | NO | | NULL | |
| english_id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| word | english_id |
| the | 1 |
| of | 2 |
| and | 3 |
| a | 4 |
| to | 5 |
| in | 6 |
| ant | 7 |
| be | 8 |
| that | 9 |
| was | 10 |
我希望能夠通過輸入的順序命令的格式,而且還不斷重複。因此,如果他們輸入"a cat and a dog"
,我會在下面的SQL查詢中得到正確的順序。問題是由於我使用了a
兩次,第二次a
沒有出現。如何在輸出中保持重複值的順序?這是當前查詢。
select english_id, word from english where word in ("Here", "are", "are", "dogs")
order by CASE word
WHEN "here" then 1
WHEN "are" then 2
WHEN "are" then 3
WHEN "dogs" then 4
END;
下面是它的輸出
| english_id | word |
| 131 | here |
| 26 | are |
| 1679 | dogs |
我希望它看起來像這樣
| english_id | word |
| 131 | here |
| 26 | are |
| 26 | are |
| 1679 | dogs |
謝謝你的幫助。我很困惑WordToSearch是什麼?我的數據庫被命名爲語言。 – 2014-10-03 16:39:57
'WordsToSearch'是「SELECT ... UNION SELECT ... UNION SELECT」查詢的別名。我起了名字。你可以在這裏使用你想要的任何名字。 – 2014-10-03 19:15:52
非常感謝您的幫助。我剛纔提出這個小小的變化,它的工作SELECT english_id,english.word 從英語 JOIN( SELECT '這裏' AS字,1 AS word_order UNION ALL SELECT '是',2 UNION ALL SELECT '是',3 UNION ALL SELECT'dogs',4)WordsToSearch on english.word = WordsToSearch.word ORDER BY WordsToSearch.word_order; – 2014-10-03 20:15:19