MySQL 使用concat函数拼接字段

前言

   room表的住址字段要包括community表的校区地址和flat表门牌号,在MySQL里用concat函数即可以解决这个问题。


实例再现

community表

CREATE TABLE `community` (
  `id` bigint(20) NOT NULL COMMENT '主键',
  `name` varchar(50) DEFAULT NULL COMMENT '小区名称',
  `address` varchar(200) DEFAULT NULL COMMENT '小区地址',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='社区表';

flat表

CREATE TABLE `flat` (
  `id` bigint(20) NOT NULL COMMENT '主键',
  `flatsNum` varchar(15) NOT NULL COMMENT '公寓门牌号',
  `communityid` bigint(20) NOT NULL COMMENT '小区ID',
  `isPrivate` bit(1) DEFAULT NULL COMMENT '是否是自有房源',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='公寓表';


room表

CREATE TABLE `room` (
  `id` bigint(20) NOT NULL COMMENT '主键',
  `roomName` varchar(50) NOT NULL COMMENT '房间名称',
  `flatid` bigint(20) NOT NULL COMMENT '公寓ID',
  `fulladdress` varchar(200) DEFAULT NULL COMMENT '住址',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='住宅表';

SQL要求

将是自有房源的community表的小区地址和和flat表的门牌号更新到room表的住址列。

SQL语句

UPDATE room,
 flat,
 community
SET room.fulladdress = concat(community.address ,  flat.flatsNum)
WHERE
	room.flatid = flat.id
AND flat.communityid = community.id AND flat.isPrivate=0



你可能感兴趣的:(数据库)