我正在尝试运行一个始终返回 2 或 3 行的 SQL 查询;当返回 3 时,必须像这样对它们进行排序:team1,draw,team2
所以基本上如果“draw”在列表中,那么它应该总是放在另外两行之间,不管它们是什么,假设团队的名称和draw在“title”列中
我试过订购CASE WHEN title = 'draw' THEN 1
,也试过FIELD()
- 不走运:(
有人可以帮忙吗?
谢谢!
尝试这个:
ORDER BY (IF(title='team1', 1, IF(title='team2', 3, 2)))
团队与结果不同。我相信你不应该解决你的问题。相反,创建三个表:Teams、Results 和 ResultTypes。在 ResultTypes 中存储两个团队之间的任何可能结果。在 Teams 中,存储团队、他们的姓名和任何相关数据。最后,在结果中存储 3 个外键。其中两个应引用 Teams 表,一个应引用 ResultTypes 表。这样,您将永远不会遇到从数据库中选择数据的问题。