1

私がやろうとしていることは次のとおりです。3つの列を持つデータベースがあり、それらが一緒になって一意の組み合わせを形成します。この組み合わせを新しいテーブル (テーブル 1) に抽出しました。ここで、個別の列に存在するデータを一意の 3 列の組み合わせに一致させたいと考えています。例えば:

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 の一意の組み合わせのすべての結果の連結で更新する必要があります。

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つの列を一致させる必要があるため、解決策はうまくいきません。

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 に答える