首先这是我的桌子
CREATE TABLE IF NOT EXISTS `group` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `member` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`group_id` int(11) unsigned NOT NULL,
`code` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `group_id` (`group_id`),
FOREIGN KEY (`group_id`) REFERENCES `group` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
我需要member.id
看起来像 001、002、003. . 我关注lpad(id, 3, 0)
并结案
但是如何将 001、002、003 重新设置回 001 有不同的地方group_id
此查询的结果为 01-001、01-002、02-003、03-004 ( group.id
- member.id
)
SELECT CONCAT(lpad(g.id, 2, 0),'-',lpad(m.id, 3, 0)) AS id, m.name
FROM member m
LEFT JOIN group g ON g.id = m.group_id
ORDER BY m.id ASC
请帮忙,我需要 01-001、01-002、02-001、03-001 ( group.id
- member.id
)
或者我可以使用触发器member.code
在插入 01-001、01-002、02-003、03-004 时自动生成group.id
-member.id