我有一个表格,每行包含一个温度和天气状况,例如:
temp condition
17 cloudy
25 sunny
22 cloudy
41 sunny
12 showers
38 sunny
我的储藏空间有限,所以我想缩小这张table的尺寸。如何将相同的天气条件合并到一行中,其中“温度”列使用分隔符(如“|”)具有不同的温度?
一旦合并,表将如下所示:
temp condition
17|22 cloudy
25|41|38 sunny
12 showers
我已将temp列的数据类型更改为varchar,以允许它存储新格式,但不确定现在如何合并行。
我想用新的格式覆盖这个表,而不是仅仅在select查询中组合它。这将有助于降低文件大小并加快运行查询的速度。如果这不能直接在mysql(phpmyadmin)上完成,那么我更愿意通过php脚本来完成。
1条答案
按热度按时间jfewjypa1#
你可以用
group_concat()
要生成结果:至于覆盖表,您需要分几个步骤进行:
创建一个新表来存储查询结果
用上面的查询输入它
删除原始表
将新表重命名为原始名称
我不建议你朝这个方向走。您将获得的微小空间增益将被按分隔列表存储数据的缺点所淹没。我建议阅读以下内容:在数据库列中存储带分隔符的列表真的有那么糟糕吗?再仔细想想。