我需要在列source
上订购行。但是,这是我要查询的表(简化):
+---+-------+-----+
|id |source |foo |
+---+-------+-----+
|1 |5 |hey |
|2 |7 |yo |
+---+-------+-----+
以下是消息来源:
+---+-------+
|id |name |
+---+-------+
|5 |First |
|7 |Awesome|
+---+-------+
现在,如果我使用这样的查询:
SELECT * FROM table ORDER BY source
...结果将按源的id排序,而不是它的实际名称。我可以简单地用PHP命令结果,但我正在寻找一个sql-solution,如果有的话。
任何帮助将不胜感激!
答案 0 :(得分:2)
听起来你只需要将这些表连在一起,就像这样:
SELECT * FROM table, sources WHERE table.source = sources.id ORDER BY sources.name
假设您的sources表名为sources ...
答案 1 :(得分:0)
我不确定我是否完全理解您对mysql排序结果的方式感到惊讶的是什么,但如果您希望按字母顺序排序结果,则需要按名称排序,而不是按来源排序,因为源是一个整数。