【发布时间】:2013-02-12 11:58:51
【问题描述】:
我想要做的是以下几点:我有一个包含 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`)
;
非常感谢您提供提示或提示。提前致谢。 供参考:Solution 对我不起作用,因为我正在使用 mySQL,我需要将 2 个 col 匹配在一起。
【问题讨论】:
-
我认为我们需要更多地了解您的表格结构,但我认为对于初学者来说,您的组 concat 应该看起来更像这样:
GROUP_CONCAT(CONCAT(value1,'=',value2) SEPARATOR "&"),尝试添加并删除您的WHERE子句。 -
请参阅 stackoverflow.com/questions/13059740/… 以获取有关合并行的帮助。
-
我们可以查看样本记录吗?