0

この質問をグーグルで検索しましたが、何も見つかりませんでした。問題はそうです:私はそのようなテーブルを持っています

CREATE TABLE IF NOT EXISTS `Hourly` (
  `gmt` bigint(20) NOT NULL,
  `city` int(11) NOT NULL,
  `temp` float NOT NULL,
  `temp_min` float NOT NULL,
  `temp_max` float NOT NULL,
  `pressure` float NOT NULL,
  `humidity` int(11) NOT NUL`enter code here`L,
  `temp_kf` float NOT NULL,
  `weather` int(11) NOT NULL,
  `icon` varchar(20) NOT NULL,
  `clouds` float NOT NULL,
  `wind_speed` float NOT NULL,
  `wind_deg` float NOT NULL,
  `rain_3h` float NOT NULL,
  `snow_3h` float NOT NULL,
  `sys_pod` varchar(255) NOT NULL,
  `received` bigint(20) NOT NULL,
   PRIMARY KEY (`gmt`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

gmt問題は、どちらかではなく、両方cityが存在しない場合に新しい行を挿入したいことです。たとえば、私のテーブルはすでに

INSERT INTO `Hourly` (`gmt`, `city`, ...) VALUES
(1373446800, 1, ...)

そして、新しい行を挿入したい

INSERT INTO `Hourly` (`gmt`, `city`, ...) VALUES
(1373446800, 2, ...)

それ以外の場合は、更新する必要があります

だから、私は私の問題を説明し、何人かの「賢い人」が私を助けてくれることを願っています.

4

1 に答える 1

0

使用するINSERT ... ON DUPLICATE KEY UPDATE

INSERT INTO Hourly (gmt, city) VALUES
    (?, ?)
ON DUPLICATE KEY UPDATE
    city = ?
于 2013-07-10T11:10:19.477 に答える