1

我想做的是以下几点:我有一个包含 3 个 cols 的数据库,它们共同形成一个独特的组合。我将这个组合提取到一个新表中(表 1)。现在我想将单独列中存在的数据与唯一的 3 col 组合相匹配。例如:

cat dog day twenty two
cat dog day twenty eleven
cat dog morning eleven ten

应该成为

cat dog day "twenty=two&twenty=eleven"
cat dog morning "eleven=ten"

作为额外的评论,我应该补充一点,我无法预测应该连接多少项目。

我尝试了以下方法:字符串字段应该使用 val3、val4 和 val5 的唯一组合的所有结果的 concat 进行更新。

UPDATE `db`.`table1` , `db`.`table2`
SET
string = 
(
SELECT group_concat(value1,'=',value2,'&') from table2
group by (val3,val4,val5)
)
WHERE 
(
`table1`.`val3`=`table2`.`val3` AND
`table1`.`val4=table2`.`val4` AND
`table1`.`val5=table2`.`val5`)
;

一个提示或提示将不胜感激。提前致谢。供参考:解决方案对我不起作用,因为我正在使用 mySQL,我需要将 2 个 col 匹配在一起。

4

1 回答 1

0

给定这个数据结构:

CREATE TABLE `dummy` (
  `col1` varchar(20),
  `col2` varchar(20),
  `key` varchar(20) DEFAULT NULL,
  `val` varchar(20) DEFAULT NULL
);

以下查询将为您提供您所要求的内容:

select col1, col2, group_concat(concat(`key`,'=', `val`) SEPARATOR '&') from dummy group by col1, col2
于 2013-02-12T12:14:36.093 回答