gpt4 book ai didi

php - MySQL根据结果数进行连接

转载 作者:行者123 更新时间:2023-11-29 00:41:49 24 4
gpt4 key购买 nike

我已经研究了两天我的问题的答案但我没有任何运气,可能是因为我不知道如何准确描述我正在寻找的东西,就我需要使用的方法而言.

基本上在我的数据库中,我有两个表,一个名为 tblCounties (ID, County_vc),另一个名为 tblOrganizations (ID, Organization_vc)。我有第三个表将两者链接在一起,称为 jnCountyOrg (Org_fk_id, County_fk_id)。一个组织最少可以属于一个县,最多可以属于三个县。当我使用 php 对我的选择查询进行 while 循环时,它会像这样正确地回显结果:

县名1县名2县名3

我试过使用 mysql_fetch_array 和 mysql_fetch_assoc。

我希望结果像这样格式化。

如果只有一个县与一个组织关联,则回显“xxx County”。

如果两个县与组织关联,则回显“xxx和xxx县”。

最后,如果三个县(最多)与该组织关联,则为“xxx、xxx 和 xxx 县”。

我很困惑我是否应该在 SQL 中使用 CASE 语句执行此操作,或者我是否应该在从数据库查询结果后使用 php 以这种方式格式化我的结果。任何帮助将不胜感激。

最佳答案

这是一个SQLFiddle example .它也适用于县计数 > 3:

select id,CompanyNAme,countyCount,countyNAmes,
if(countyCount=1,concat(countyNAmes,' County'),
if(countyCount=2,concat(REPLACE(countyNAmes,', ',' and '),' Counties'),

CONCAT(SUBSTRING_INDEX(countyNAmes,',',countyCount-1)
,' and '
, SUBSTRING_INDEX(countyNAmes,',',-1)
,' Counties'
)
)
) RESULT
from
(
select o.id,max(o.Organization_vc) CompanyNAme,
group_concat(c.County_vc separator ', ') CountyNames,count(c.id) CountyCount

from tblOrganizations o
left join jnCountyOrg co on (o.id=co.Org_fk_id)
left join tblCounties c on (co.County_fk_id = c.id)
group by o.id
) m
order by m.id

关于php - MySQL根据结果数进行连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11951548/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com