我的网站上有一个选择菜单,显示所有可用的国家/地区。这些国家来自我的MySQL表,其中包含10个国家/地区,以随机顺序排列。我完全知道如何从我的表中检索所有国家/地区并使用PHP在我的HTML选择菜单中输出它们。
然而,当我想选择两个特定 <时,我想知道代码方式是 最有效的方式 / em> 国家/地区显示在我的选项列表的顶部,其他八个国家/地区列在下面?我想用尽可能少的sql和php来实现这个目标。
我们说我有下表&#34;国家&#34;:
id name
1 United States
2 France
3 Brazil
4 Puerto Rico
5 India
6 Australia
7 Italy
8 Denmark
9 South Africa
10 Oman
我想在选择菜单中输出国家/地区,我希望列表从丹麦和印度开始(将其ID作为选项值)。
我的目标:
<select>
<option value="8">Denmark</option>
<option value="5">India</option>
// ... the other eight countries underneath, in no specific order
</select>
检索所有国家/地区的基本SQL查询将是:
SELECT id, name FROM countries
我如何才能最好地实现目标?
答案 0 :(得分:1)
您可以使用FIELD()
功能
SELECT id, name
FROM countries
ORDER BY FIELD(name,'India','Denmark') DESC
或使用CASE
SELECT id, name
FROM countries
ORDER BY CASE WHEN name = 'Denmark' THEN 0
WHEN name = 'India' THEN 1
ELSE 2 END
答案 1 :(得分:1)
如果您想要按字母顺序排列ORDER作为关注者,您也可以使用此声明
SELECT id, name
FROM countries
ORDER BY id=8 DESC, id=5 DESC, name ASC