草庐IT

去重复

全部标签

php - 在 mysql 和 php 中对重复更新使用插入时,如何知道最后一个操作是插入还是更新?

我正在使用PHP和MySQL。如果我使用INSERTONDUPLICATEUPDATESQL语句,那么我如何知道最后一个操作是成功插入而不是更新或不成功插入?假设有问题的表不使用自动增量,所以我不能使用mysql_insert_id来帮助我找出答案。 最佳答案 您需要检查mysql_affected_rows(),它将在插入时返回1,在更新时返回2。根据mysqldocumentation.if(mysql_affected_rows()==1)//INSERTelseif(mysql_affected_row()==2)//UPD

mysql - 重复键更新时的 Node Mysql 仅更新唯一行

我将MySQL5.7与NodeJS6.11.0结合使用,并在插入冲突行时尝试更新UNIQUEMySQL列.但是,当我尝试插入冲突记录时,只有现有记录更新为NULL并且没有insert发生。这是我的代码pool.getConnection(function(err,connection){varnewClass=req.body;varquery=`INSERTINTOclassesSET?ONDUPLICATEKEYUPDATEteacher_id=NULL`;connection.query(query,newClass,function(err,result){console.lo

mysql - 如何在 MySQL 中有效地找到重复的 blob 行?

我有一个表格CREATETABLEdata{pkINTPRIMARYKEYAUTO_INCREMENT,dtBLOB};它在blob列中有大约160,000行和大约2GB的数据(每个blob平均14kb)。另一个表在这个表中有外键。大约有3000个Blob是相同的。所以我想要的是一个查询,它会给我一个重新映射表,让我可以删除重复项。天真的方法在30-40k行上花费了大约一个小时:SELECTa.pk,MIN(b.pk)FROMdataASaJOINdataASbONa.dt=b.dtWHEREb.pk由于其他原因,我碰巧有一个具有blob大小的表:CREATETABLEsizes(fk

mysql - 如何编写 SQL 查询来检测重复的主键?

假设我想改变表,使我的主键如下user_id,round,tournament_id目前有重复项需要清理。查找所有重复项的查询是什么?这是针对MySQL的,我希望看到重复的行 最佳答案 从技术上讲,您不需要这样的查询;任何有值(value)的RDBMS都不允许插入会在表中产生重复主键的行。这样的事情违反了主键的定义。但是,如果您希望在将主键应用到包含这些列的表之前编写查询来查找这些列组的重复项,那么这就是您想要的:selectt.user_id,t.round,t.tournament_idfromtableastgroupbyt.

MySQL 更新键的重复条目

我在名为label的列上有一个unique索引,但出于某些奇怪的原因,我尝试进行如下更新:UPDATEbooksSETlabel='foobar',title='somethingnew',modified=UTC_TIMESTAMP();并且已经存在带有label='foobar'这个错误的行:#1062-Duplicateentry'foobar'forkey'label'如何让MySQL进行更新?这应该不会中断,因为从技术上讲,仍然只有一行包含键foobar。谢谢。 最佳答案 此SQL查询试图用这些值更新books表中的每条记

MongoDB数据去重(单字段和多字段去重)(百万级数据)

1、打开Mongo数据库,查询是否有数据重复①、查询DB_Name数据库中的item_id字段重复数据(单字段):db.DB_Name.aggregate([    {$group:{_id:'$item_id',count:{$sum:1}}},    {$match:{count:{$gt:1}}}],{allowDiskUse:true})//允许利用磁盘空间,防止出现内存不足运行输出结果:②、多字段查询:跟只需要将单字段的 _id: '$item_id' 后面的item_id改成字典格式,即_id:{item_id:"$item_id",status_Update:"$status_U

php - MySQL删除重复的反向值

我有MySQLMyISAM表:同table好友(id,friend_id):1,55,12,66,23、7如何删除反向记录?如果记录值«1,5»存在值为«5,1»的记录,我需要删除«5,1»。感谢您的帮助! 最佳答案 DELETEF1FROMfriendsF1,friendsF2WHEREF1.friend_id=F2.idANDF2.friend_id=F1.idANDF1.id>F1.friend_id编辑更好的语法是:DELETEF1FROMfriendsF1JOINfriendsF2ONF1.friend_id=F2.idA

sql - SQL 查询中没有重复项

我正在使用内部连接在MySQL中进行选择:SELECTDISTINCTtblcaritem.caritemid,tblcar.icaridFROMtblcaritemINNERJOINtblprivatecarONtblcaritem.partid=tblprivatecar.partidINNERJOINtblcarONtblcaritem.carid=tblcar.caridWHEREtblcaritem.userid=72;有时我会在结果中得到重复的tblcaritem.caritemid。我想确保永远不会得到tblcaritem.caritemid的副本,但我该怎么做呢?我尝试

mysql - 删除 mySql 表中的第二条重复记录

我的MySQL表中有2,00,00行数据的集合。现在我想删除表中的第二个重复记录。(即)不应删除重复值的第一个记录。仅删除表值中的第二条重复记录。例子id|logEntry|logValue--------------------------------1|AA15AA7515|114455882|AAFIRNNFIE|995864543|AA15AA7515|145893134|AA9894AF56|159856325|AA15AA7515|161242466|AA69481533|154541867|AAFIRNNFIE|12788549在此示例中,Id的(1,3,5)、(2,7)

php - 如何查找是否有连续两次重复的单词

例如,我在MySQL数据库表字段中有以下段落“本地球介于两者之间时,天文物体的照明被切断,如eclipse”这里单词“object”连续出现两次(彼此相邻)。我想检查这个案例是否出现在同一个表的其他记录中。有没有一种简单的方法可以使用PHP和MySQL来做到这一点 最佳答案 if(preg_match('/\\b(\\w+)\\s\\1\\b/',$subject)){//hasrepetition} 关于php-如何查找是否有连续两次重复的单词,我们在StackOverflow上找到一