0

是否有一种 mysql 语法可以从表中执行选择值,然后将这些值复制到同一个表中,但更新副本的几列?

表(tickets),id是主键,auto_increment:

id | name | start_date | end_date | value | active
  • name从给定几个值(如、start_date和)的end_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 回答