基于与MySQL中另一列匹配来连接列的好方法是什么?可能会增加限制吗?
说我的表看起来像这样:
City | State | Stores
----------------------
Miami FL Walmart
Miami FL Sams
Miami FL Target
Tampa FL Sears
Tampa FL Walgreens
我希望得到这样的东西:
City | State | Stores
----------------------
Miami FL Walmart, Sams, Target
Tampa FL Sears, Walgreens
另外,是否可以设置限制数量的限制?假设我想要限制为2,在上面的示例中,它会在获得2个项目后排除Target。这可能吗?
答案 0 :(得分:3)
您可以同时使用GROUP_CONCAT
和SUBSTRING_INDEX
进行连接,然后限制要返回的值的数量:
select city,
state,
substring_index(group_concat(stores SEPARATOR ', '), ', ', 2) stores
from yt -- ^ number of values to limit
group by city, state;
答案 1 :(得分:0)
您可以使用GROUP_CONCAT
。
SELECT City, State, GROUP_CONCAT(Stores SEPARATOR ', ') Stores
FROM table
GROUP BY City, State
<强>结果强>
| CITY | STATE | STORES | ----------------------------------------- | Miami | FL | Walmart, Sams, Target | | Tampa | FL | Sears, Walgreens |