按字母顺序排序mysql-query,给出一个数字的字符串?

时间:2011-08-13 18:32:41

标签: php mysql sql-order-by

我需要在列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,如果有的话。

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:2)

听起来你只需要将这些表连在一起,就像这样:

SELECT * FROM table, sources WHERE table.source = sources.id ORDER BY sources.name

假设您的sources表名为sources ...

答案 1 :(得分:0)

我不确定我是否完全理解您对mysql排序结果的方式感到惊讶的是什么,但如果您希望按字母顺序排序结果,则需要按名称排序,而不是按来源排序,因为源是一个整数。