MySQL从不同条件的同一列中选择多个值

时间:2015-11-12 16:36:59

标签: mysql select

我正在尝试从表value上的一列detail中选择多个数据,其中同一个表中的相邻列是特定值。

例如:

field_number | value
--------------------
       40    |  820
       41    |  548
       44    |  100

我需要从detail.value返回3个选择值,以获得包含以下内容的结果:

"Balance Amount" | "Convo. Amount" | "Chapter ID"
 -------------------------------------------------
      820        |       100       |      548

这是一个更大的查询的所有部分,它连接3个表来为多个条件值提取这些值,我只是不知道引用具有每个返回的特定条件的相同table.value的最佳方法。如果有帮助,我可以提供我的附加查询语法,但上述情况突出了重点。如果它使一个优雅的解决方案更加复杂,我也不一定需要“余额”,“Convo。金额”和“章节ID”别名。

非常感谢您提供的任何帮助或见解。

2 个答案:

答案 0 :(得分:0)

这样的事情:

SELECT case when field_num=40 then value as 'Balance Amount' END,
case when field_num=41 then value as 'Convo. Amount' END,
case when field_num=44 then value as 'Chapter ID' END
from [table]

会为你做的。但这并不是非常可靠,除非你肯定那些是field_num中的值。

答案 1 :(得分:0)

不是很优化,但你可以使用它。请注意,MySQL的值为reserved word

SELECT 
    (SELECT `value` FROM detail WHERE field_number = 40) AS 'Balance Amount',
    (SELECT `value` FROM detail WHERE field_number = 44) AS 'Convo. Amount', 
    (SELECT `value` FROM detail WHERE field_number = 41) AS 'Chapter ID';

结果:

Balance Amount  Convo. Amount   Chapter ID
820             100             548