在MySQL中,是否可以根据值设置列名?

时间:2015-08-19 05:03:00

标签: mysql

我对mysql / php有些新意,我不确定解决这个问题的最佳方法是什么。

我基本上有一张英文单词表和另一张翻译表。

|ID | Word   |      | fkID | Language | Translation | 
| 0 | Dog    |      |  0   | Spanish  | perro       |
| 1 | Cat    |      |  0   | French   | chien       |
                    |  1   | German   | Katze       |
                    |  1   | Spanish  | gato        |`

在我的php网站上,我想列出一个表格中的每个英文单词,旁边有所有翻译。

| Word | Spanish | French | German |
| Dog  | perro   | chien  |        |
| Cat  | gato    |        | Katze  |

我可以通过连接两个表然后循环遍历php中的结果来查找给定单词的所有翻译然后为与语言对齐的每个单词创建数组来强制执行此操作,但它看起来非常像效率很低的方法。

有更好的方法吗?

(是否有可能让mysql返回一个看起来就像我想要的输出的结果,其中列名是语言。我知道我可以为每种语言都有一个列,但这最终可能是一百列不使用。)

1 个答案:

答案 0 :(得分:0)

实际上你走在正确的轨道上。您正在寻找的是表格旋转,但遗憾的是MySQL中没有PIVOT。当然,有一个workaround,但请记住,正确的工具是使用您的脚本语言来创建您想要的结构。