前段时间在工作过程中,遇到个这样的需求:其中A表每次进行添加时只添加一条记录,B表关联A表的id会同时添加一条或多条记录。当我进行查询的时候,只查询A表的记录,但最近需求要求我关联B表查询一些东西,这样的话就会出现一对多记录问题。在页面展示就会出现问题。
后来我找到了一个办法,使用mysql的函数进行处理,这个函数就是GROUP_CONCAT。
GROUP_CONCAT功能:将group by产生的同一个分组中的值连接起来,返回一个字符串结果。
也就是说,用了这个函数之后,对应的多条记录那些根据A表的id分组后,就会形成一条记录,这一条记录是多条记录用,拼接而成的。这样的话,依旧可以根据A表查记录,展示的那个有多条记录的字段就是用,拼接出来的。
这个问题解决之后,还有一个问题随之而来,我查这些记录的总数量的时候,出现了问题,另外根据这个多条记录拼接出来的字段进行模糊查询的时候出现了问题。当进行模糊查询的时候,如果根据正常的sql进行模糊查询时,它是查询的表里所真实存在的数据,这就导致你搜的有时候会查不出来,于是我考虑到了子查询,把查询到的内容当作另一个表的条件再进行查询,给首先查询到的内容起一个别名,然后模糊查询时,根据这个字段like一下就行。
关于mysql一对多记录展示问题
最新推荐文章于 2024-01-12 17:57:32 发布