MySQL内のデータベーステーブルを更新して行を結合しようとしています。テーブルの内容は次のとおりです。同じテーブル内のGROUP_CONCATでSELECTステートメントを使用してUPDATEを実行する
NID SID CID NO DATA
5297 32002 5 0 10
5297 32002 5 1 17
5297 32002 5 2 1976
「DATA」列には、日付を構成する月、日、年が含まれています。だから私は、次のようにこれらのレコードを結合したいと思います:
各SIDに対して5297 32002 5 0 10-17-1976
、それが「いいえ」の列と日付の三つの部分を含むで示される3異なる行、とCIDが含まれています。
私は出力がこのselect文で希望取得することができます。
SELECT GROUP_CONCAT(d.data ORDER BY `no` SEPARATOR '-') AS data FROM
webform_submitted_data_copy d WHERE cid = "5" GROUP BY d.sid
これは私がどのように形成するかを見つけ出すことはできませんUPDATE..but以下「データ」の欄にあることが望まれているものを返します正しいUPDATE文...のようなもの:
UPDATE webform_submitted_data_copy
SET webform_submitted_data_copy.data = (GROUP_CONCAT(d.data ORDER BY `no` SEPARATOR '-'))
WHERE webform_submitted_data_copy.cid = "5" GROUP BY webform_submitted_data_copy.sid
しかし、これは0行に影響を与え、何の障害を持っていませんが...ない喜びと他の多くの可能なステートメントを試してみました。
???
誰でもこの仕事をするために必要なことを知っていますか?
実際には、そこにSQLに「TEMPORARY」テーブルを作成する必要があります。 ;) –
@ RyanP:私は実際にはSQLを更新しました。 – ruakh
( 'CREATE ... SELECT'構文で' TEMPORARY'を使用できるかどうかはわかりませんが、明白な理由から、 'DROP'を実行したバージョンで' TEMPORARY'を使いたくないとにかく元のテーブル、新しいバージョンでは、うまくいくでしょう。) – ruakh