私は多くの異なる投稿について毎日データを取得するクエリを持っています。それを各投稿ごとに挿入する前に、データがその投稿の前日と同じでないかどうかチェックしたいと思います。値のmysqlデータベースにデータを挿入するだけではありません
表のpost_metrics:
| id | date | value1 | value2 | etc...
| 123 | 2017-01-10 | 20 | 50 | more columns
| 123 | 2017-01-11 | 40 | 80 | more columns
| 124 | 2017-01-10 | 100 | 600 | more columns
| 124 | 2017-01-11 | 410 | 800 | more columns
ので、システムはそれがVALUE1は40(前日と同じではありませんかどうかを確認する必要がありますID 123とポストのために2017年1月12日のためにデータを挿入しようと言うことができます)
私は正しい方向に私を得たと思います。このスタックの答えが見つかりました:これが示唆された MySQL: Insert record if not exists in tableいるが()私の例テーブルに合わせて、それを書き直し:
INSERT INTO `post_metrics` (`id`, `date`, `value1`, `value2`)
SELECT * FROM (SELECT 123, now() 113, 84344, now()) AS tmp
WHERE NOT EXISTS (
SELECT `id`, `value1` FROM `post_metrics` WHERE `id` = 10156753760478438 AND `value1` = 84344
)
は今、これは素晴らしい作品と私は、この問題を見つけるdidntの場合は仕事をしていません:
私の実際のクエリ:
Duplicate column name '0'
複数の値から来ている:これはエラーを返します
INSERT INTO `post metrics minutes` (`date updated`, `impressions`, `reach`, `fan reach`, `viral reach`, `consumptions`, `consumers`, `engaged users`, `engaged fans`, `engagements`, `storytellers`, `negative feedbacks`, `video views`, `hours video view time`, `video length (sec)`, `video avg time watched`, `content quality`, `type alignment`, `neg.fdbck.rate unweighted`, `eng.rate unweighted`, `video completion rate unweighted`, `post id`)
SELECT * FROM (
SELECT now(), 94997, 61475, 87611, 5382, 2677, 1818, 2052, 1890, 577, 540, 53, 21955, 0, 959.13, 0, 'weak', 'normal rates', 0.00086213908092721, 0.0093859292395283, 0, 123) AS tmp
WHERE NOT EXISTS (
SELECT `post id`, `impressions` FROM `post metrics minutes` WHERE `post id` = 123 AND `impressions` = 94997)
ゼロ私は行3で選択しようとします。これをどのように修正することができますか?
' '今()'' - 'NOW()は'関数でありますなぜ文字列リテラルとして使用していますか?ここで列シフトの問題のようです。編集:あなたの編集を見て、これはオリジナルの投稿https://stackoverflow.com/revisions/46346437/1に基づいていました - 私たちは編集中ですか? –
それは本当に良い点ですが、問題ではありません;)(質問でそれを修正しました) –
ええ、それは私にとっても新しいことでした。あなたがそれを把握したい場合は、私の投稿に含まれている質問と回答を見てください! https://stackoverflow.com/questions/3164505/mysql-insert-record-if-not-exists-in-table –