我一直在研究我的問題的答案,現在兩天了,我沒有任何運氣,可能是因爲我不知道如何描述我在找什麼,到目前爲止作爲我需要使用的方法。我有兩個表,一個名爲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