将MySQL查询结果拆分为多行的替代方法

时间:2014-05-17 16:08:25

标签: mysql sql

我有一个基于地理内容的数据库。一个领域' geo'确定某一行的国家/地区(可能是多个)。我想让MySQL的每个国家代码都应该有不同的结果。如果数据库中没有专门用于" CN"例如,我们可以使用' general'行的结果不是特定于某个国家/地区的行。

id | geo    |
---+--------+
1  | NL     |
2  | US     |
3  |        |
4  | CA NL  |
5  | US     |

我想要的是:

| geo |
+-----+
|     |
| NL  |
| US  | 
| CA  |

我尝试使用CONCAT(来自db的SELECT GROUP_CONCAT)来获取数据库中找到的所有可能条目,但是这将涉及将两个结果(对于ID#4)分成两行以获得类似" NL,美国,加拿大"回来,那已经有所帮助了。

解决方案是为此生成一个MANY-TO-MANY数据库,这样可以很容易地选择表中使用的国家/地区。另一种方法可能是通过GEO获取所有GROUPED并使用PHP来确定要使用的国家/地区,但我不能认为必须有一种更清晰的方法来解决MySQL中的这个查询。 this SO post中讨论了另一种可能的方法,但这只是解决这个问题的一种可能方法(因此没有理由将这个问题关闭为“重复”,因为它显然不是'吨...)

有人知道要走的路线吗?

0 个答案:

没有答案