相关疑难解决方法(0)

INSERT INTO ... SELECT FROM ... on DUPLICATE KEY UPDATE

我正在进行插入查询,如果已经存在唯一键,则需要将大多数列更新为新值.它是这样的:

INSERT INTO lee(exp_id, created_by, 
                location, animal, 
                starttime, endtime, entct, 
                inact, inadur, inadist, 
                smlct, smldur, smldist, 
                larct, lardur, lardist, 
                emptyct, emptydur)
SELECT id, uid, t.location, t.animal, t.starttime, t.endtime, t.entct, 
       t.inact, t.inadur, t.inadist, 
       t.smlct, t.smldur, t.smldist, 
       t.larct, t.lardur, t.lardist, 
       t.emptyct, t.emptydur 
FROM tmp t WHERE uid=x
ON DUPLICATE KEY UPDATE ...; 
//update all fields to values from SELECT, 
//       except for exp_id, created_by, location, animal, 
//       starttime, endtime
Run Code Online (Sandbox Code Playgroud)

我不确定该UPDATE子句的语法应该是什么.我如何引用该SELECT子句中的当前行?

mysql insert-update

112
推荐指数
2
解决办法
12万
查看次数

有没有办法使用ON DUPLICATE KEY更新我要插入的所有内容?

我知道ON DUPLICATE KEY UPDATE如果已经存在该密钥的记录,您可以使用更新某个值,

我可以做这个:

INSERT INTO `tableName` (`a`,`b`,`c`) VALUES (1, 2, 3)
ON DUPLICATE KEY UPDATE `a`=1, `b`=2, `c`=3
Run Code Online (Sandbox Code Playgroud)

但是,如何在不必写出两次列和值的情况下执行此操作?

mysql insert on-duplicate-key

68
推荐指数
4
解决办法
5万
查看次数

MySQL插入非PRIMARY键的重复更新

我对重复更新查询中的插入很困惑.我有MySQL表,结构如下:

  • record_id(PRIMARY,UNIQUE)
  • person_id(UNIQUE)
  • SOME_TEXT
  • some_other_text

如果我的table.person中存在id,或者在此表中插入新记录,我想为person更新some_text和some_other_text值.如果person_id不是PRIMARY,怎么办呢?

mysql

8
推荐指数
3
解决办法
2万
查看次数

SQL访问查询 - 如果存在则更新行,如果不存在则插入

我需要为MS Access 2000编写SQL查询,以便在存在时更新行,但如果不存在则插入.

如果行存在...

UPDATE Table1 SET (...) WHERE Column1='SomeValue' 
Run Code Online (Sandbox Code Playgroud)

如果它不存在......

INSERT INTO Table1 VALUES (...) 
Run Code Online (Sandbox Code Playgroud)

这可以在一个查询中完成吗?

(在MySQL中工作的ON DUPLICATE KEY UPDATE方法似乎不适用于此.)

sql ms-access

7
推荐指数
1
解决办法
2万
查看次数

如何在 Node.js MySQL 中正确使用 ON DUPLICATE KEY UPDATE

我使用Node.js将值推送到 MySQL 表,例如:

     for (var i = 0; i < data.length; i++) {
        flattenedData.push([data[i].id, data[i].adult, data[i].backdrop_path, JSON.stringify(data[i].genre_ids), data[i].original_language, data[i].original_title, data[i].overview, data[i].popularity, data[i].poster_path, data[i].release_date, data[i].title, data[i].video, data[i].vote_average, data[i].vote_count]);
        //console.log(flattenedData);
      }                                                      
      db.query("INSERT INTO movies (id, adult, backdrop_path, genre_ids,  original_language, original_title, overview, popularity, poster_path, release_date, title, video, vote_average, vote_count ) values ?", [flattenedData], function (err, result) {
        if (err) {
          throw err;
        }
        else {
          console.log('data inserted' + result);
        }
     });
Run Code Online (Sandbox Code Playgroud)

我想添加ON DUPLICATE KEY UPDATE到查询中,但我不断收到语法错误,有人可以告诉我正确的方法吗?

javascript mysql node.js

2
推荐指数
1
解决办法
7026
查看次数