我一直在研究我的问题的答案,现在两天了,我没有任何运气,可能是因为我不知道如何描述我在找什么,到目前为止作为我需要使用的方法。我有两个表,一个名为tblCounties(ID,County_vc),另一个tblOrganizations(ID,Organization_vc)。我有第三个表格将两者联系在一起,称为jnCountyOrg(Org_fk_id,County_fk_id)。一个组织可以属于最少一个县,最多三个县。当我使用PHP做一个while循环通过我的选择查询,它Echo的结果正确是这样的:MySQL concat根据结果数
CountyName1CountyName2CountyName3
我一直在使用mysql_fetch_array和mysql_fetch_assoc尝试。
我想将结果格式化如此。
如果只有一个县与一个组织相关联,则回显“xxx县”。
如果两个县与组织相关联,则回显“xxx和xxx县”。最后,如果三个县(即最大值)与该组织相关联,那么“xxx,xxx和xxx县”就是该组织的关联组织。
我很困惑我是否要在使用CASE语句的SQL中执行此操作,或者是否应该使用php在从数据库中查询后以这种方式格式化结果。任何帮助将不胜感激。
更好的做到这一点在PHP中。这是一个显示的东西 - sql通常应该只用于原始数据。 – 2012-08-14 11:45:29
与@MarcB达成一致 - 这在SQL中是可行的,但总体PITA可能比在PHP中执行时低。 – DaveRandom 2012-08-14 11:46:21
对于踢腿,[here](http://sqlfiddle.com/#!2/bd62c/1)是为什么你应该在PHP而不是MySQL中做这个演示。即使这种可笑的复杂机制仍然假定县名不能包含“@”。可能有一个更简单的方法,但我想不出一个,MySQL的字符串操作函数留下了很多想要的... – DaveRandom 2012-08-14 13:11:39