Heim  >  Artikel  >  Backend-Entwicklung  >  关于数据库查询更新的问题

关于数据库查询更新的问题

WBOY
WBOYOriginal
2016-06-23 14:23:30827Durchsuche

表结构:
id
order_id
name
address
qty
product_number
product
logistics_id

样例数据
id---order_id----name------address----qty----product----logistics_id
1-----000001----wanggang----shenzhen----10----iphone-----?
2-----000002----wanggang----shenzhen----5-----ipod-------?
3-----000003----lier--------beijing-----5-----ipad-------?
4-----000004----zhaosi------guangzhou---8-----ipad-------?
5-----000005----lier--------beijing-----4-----iphone-----?


我们会每个下载下个订单文件上传到我的系统里面,除了logistics_id字段以外,其它内容都是这个上传文件的内容。现在的需求是当我们把这些订单导入数据库的时候,需要给每个邮件编个编码(快递号,logistics_id字段),人名和地址一样的就要给同一个编码(同一个快递),请问怎么样在导入的时候给人名和地址一样的记录编同一个编码呢??如果不能在导入的时候编码,那有什么方法比较好呢?


回复讨论(解决方案)

你的是MySQL么?可以使用GROUP_CONCAT(expr)来获取条件的列表,然后更新这些id信息为一个快递号码


SELECT tb.name, tb.address, GROUP_CONCAT(tb.id SEPARATOR ' ') AS id_list    FROM table tbGROUP BY tb.name, tb.address


输出
name, address, id_list------------------------wanggang, shenzhen, 1 2lier, beijing 3 5zhaosi,guangzhou, 4





文档:http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat

iasky大大:
         你的意思是不是,我要先把数据全部导入到数据库,然后再查询,再去更新编号???

          那id_list是不是我还要取出来再对它分割数组再赋值???

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn