1

mysqlフィールドをその値で更新する簡単なクエリが必要です。たとえば、フィールドに値(3,4,5)がある場合は、(、6)を追加できます。これは、値がある場合に備えて、NULLの場合は更新します。 「、」のあるフィールド

Webを検索して、CONCATというmysql関数を見つけました。これにより、引数を連結した結果の文字列が返されます。

私はこれを試しましたが、これはうまくいきませんでした

UPDATE groups SET SubsID = CONCAT(SubsID,",5") WHERE GroupID = 2

問題は返されませんが、0行が影響を受け、フィールドは更新されません

4

4 に答える 4

2
UPDATE GROUPS
SET SubsID = CASE WHEN SubsID IS NULL THEN '6'
                  ELSE CONCAT(SubsID, ',6')
             END
WHERE GroupID = 2
于 2012-10-15T06:26:42.960 に答える
1

COALESCE連結する前に追加する

UPDATE groups 
SET SubsID = CONCAT(COALESCE(SubsID,''),",5") 
WHERE GroupID = 2
于 2012-10-15T05:52:09.887 に答える
0

リレーショナル データベースの CSV データは、ひどい考えです。代わりに、ジャンクション テーブルを使用して、 と の間の多対多の関係を格納する必要がgroupsありsubsます。

例えば

CREATE TABLE group_to_sub (
    `GroupID` INT NOT NULL REFERENCES `groups` (`GroupID`),
    `SubID` INT NOT NULL REFERENCES `subs` (`SubID`),
    PRIMARY KEY (`GroupID`, `SubID`)
) ENGINE innodb;

INSERT INTO group_to_sub (GroupID, SubID) VALUES (2, 5);
于 2012-10-15T05:55:18.240 に答える
-2

クエリが間違っています..以下を試してください

UPDATE groups SET SubsID = CONCAT(SubsID,',5') WHERE GroupID = 2;

そして groupid 2 が存在することを確認してください

于 2012-10-15T05:57:05.493 に答える