0

テーブルから値を選択し、それらの値を同じテーブルにコピーし、コピーのいくつかの列を更新できる mysql 構文はありますか?

テーブル ( tickets)idは主キーで、auto_increment:

id | name | start_date | end_date | value | active
  • name、、、などのいくつかの値を指定して、チケットから単一の行を選択start_dateend_dateますvalue
  • ステートメントに一致する行をコピーしますが、値を更新しますx
  • 更新を含むコピーを挿入します
4

2 に答える 2

1

これにより、SELECT..WHERE ステートメントの条件に一致する行のコピーが挿入され、仕様に従って自動生成されたプリム キー ID を持つ新しい行が挿入されます。

INSERT INTO `tickets`(`name`, `start_date`, `end_date`, `value`, `active`)    
SELECT `name`, `start_date`, `end_date`, `value`+[value_modifier], `active`
FROM `tickets`
WHERE `name`       = '[name value]' AND
      `start_date` = [start_date]   AND  -- assuming date is timestamp otherwise wrap in '
      `end_date`   = [end_date]     AND
      `value`      = [some_value]        -- assuming value is number    

特定の基準に一致する行を更新する必要があるだけで、コピーする必要がない場合は、UPDATE ステートメントを使用するだけです。

于 2012-06-21T17:04:54.943 に答える
0

あなたが何をしようとしているのかよくわかりませんが、これは役に立ちますか?

INSERT INTO tickets SELECT t.startdate,t.endate, 'x' value FROM tickets t WHERE t.start_date = ? AND t.end_date = ? AND t.name = ? AND t.value = ? 
于 2012-06-21T14:40:23.210 に答える