草庐IT

去重复

全部标签

php - 使用表 B 中的信息更新表 A(其中包含重复信息)

这有点棘手。我有人提出了非常具体的要求。这个数据库有两张表:A表(客户表)和B表(订单表)。表A的每一行都有一个唯一的客户ID(customerid)。它还具有一个服务日期(DATEOFS)列,该列主要填充来自先前数据库的旧信息。表B对每个订单都有一个唯一的订单号(ordernum)。每个订单还链接到客户(customerid)并具有订单日期(dofserv)。为了在实际的PHP脚本中显示服务日期,我使用了以下查询:SELECTdofservFROMordersWHEREcustomerid=".$result['customerid']."ORDERBYdofservDESCLIMI

mysql - 将重复的匹配对分组到一个组中 - SQL

第一篇文章在这里!我想了解的是如何在SQLServer中为不同的重复项分配一个整体组ID?例如我有下表:Test|ID|PairA341A841A342A882A363A883A404A424B341B981我想做的是按照“X匹配Y,但Y也匹配Z,因此X也匹配Z”的概念将它们分组到每个测试中?所以我得到类似的东西:Test|ID|NewGroupIDA341A841A341A881A361A881A402A422B341B981您注意到在上面的示例中,对于测试A,34匹配84,34匹配88,但88也匹配36,因此ID34、84、88、36都是一组。ID34也与ID98匹配,但这是针对测

mysql表中删除重复记录,只保留一条记录的操作

mysql表中两个字段重复记录,只保留一条记录的操作例如有一张学生表其中name和class相同的视为重复记录,需要保留一条记录,删除重复记录,两种操作方式如下:方法一:groupbySELECTMIN(cs.id)ASid,cs.`name`,cs.classFROM`ceshi`csGROUPBYcs.`name`,cs.`class`查询结果如下:此操作找出了需要保留的记录,即按name、class进行分组,取出id最小的记录,删除id不在上面的记录即可,最终保留的记录的id为1、3、4、5、6、8,原表中的2、7、9、10均为要删除的重复记录删除sql如下:DELETEFROM `ce

仅当行不存在时 MySQL INSERT,否则选择重复行

我正在寻找一个语句,它会尝试将一行插入表中,但如果遇到重复行,则返回重复行的主键。表中一个字段是自增主键,另一个是唯一的。 最佳答案 至少在理论上,这应该对您有用:首先扩展您的表以增加一个tinyint类型的虚拟列。然后你可以在插入/更新时使用下面的查询:INSERTINTOyourtable(a,b)VALUES(1,2)ONDUPLICATEKEYUPDATEid=LAST_INSERT_ID(id),dummy=NOTdummy(我在这里假设列a具有唯一索引并且存在a=1的行。)然后您可以通过以下方式获取新行的ID(在插入的情

mysql - 获取 mysql 中不同重复 ID 的计数

这是查询selectcount(*),ss.pname,ttu.user_id,ttl.location_name,group_concat(em.customer_id),count(em.customer_id)fromsesealasss,track_and_trace_userasttu,track_and_trace_locationasttl,eseal_mappingasemwheress.real_id=em.e_idandem.user_id=ttu.user_idandttu.location_id=ttl.location_idgroupbyss.pname,tt

MySql 防止/跟踪跨多个字段的重复字段

我正在寻找一种简单的方法来检查多个零件表,以确定给定零件号在添加到给定表之前是否已经存在。我目前想到的最好的想法是一个辅助表,它简单地将所有表中的每个PN列在一个列中,并带有一个唯一的键;但是我想知道是否有一种方法可以在不创建新表和索引的情况下做到这一点?对于视觉学习者类型,我有四十多个或多或少遵循这种模式的表格:表一|id|PN|OtherColumns|----------------------------------------------|1|SomePn|............|...表2|id|PN|StillOtherColumns|-----------------

mysql - 我怎样才能让一个mysql主键即使在被删除后也永远不会重复

我继承了一个设计很糟糕的mysql数据库,其中在用户表和首选项表之间没有真正的外键。考虑CREATETABLE`user`(`id`int(10)unsignedNOTNULLAUTO_INCREMENT,`email`varchar(255)NOTNULLCOMMENT'emailaddress',...)和CREATETABLE`preference`(`id`int(10)unsignedNOTNULLAUTO_INCREMENT,`user_id`int(10)NOTNULL,...)如果我从用户表中删除一行,这会使首选项表成为孤立的。然而,在mysql中使用上述主键,一旦我向

php - 将相同的元数据插入多个表的相同列时,如何减少重复代码?

我的目标:遵循数据库规范化。能够跟踪我的表格中的更改。能够从给定的状态恢复我的数据库状态时间点,例如上个月。将处理数据的代码分开,以便输入可以来自HTML表单或其他语言(Ruby/perl)的脚本。为了实现这一点,我选择了像这个答案中描述的那样的数据库设计:StackOverflow:IsthereaMySQLoption/featuretotrackhistoryofchangestorecords?但是,当用户更新多个字段时,必须将相同的元数据插入到包含相同列的多个表中,并且我的代码变得重复。示例:用户通过HTML表单提交数据。PHP在PropelORM的帮助下处理如下数据。fun

php - 使用 .htaccess 重写 URL 使重复的 mysql 条目

如果使用.htaccess重写url,所有使用php的INSERT查询都会执行两次(不需要的重复)我的.htaccess:RewriteEngineOnRewriteBase/RewriteRule^index\.php$-[L]RewriteCond%{REQUEST_FILENAME}!-fRewriteCond%{REQUEST_FILENAME}!-dRewriteRule./index.php[L]和index.php:加载一次index.php后,我在mysql中有两个相同的条目。当我删除.htaccess时一切正常,所以,问题一定在那里。.htaccess中的重写定义取自

php - 刷新时,重复数据插入 codeigniter 中的数据库

我已使用$this->db->insert()将数据插入到我的表中。当数据插入成功时必须显示消息,并且数据不应再次插入。Controller:publicfunctionindex($message=''){$this->load->template('homePage');}/***Insertfunctionlaity*/publicfunctioninsert(){if($_POST['save']){$result=$this->home->insertEntry();$data['message']=($result>0)?'saved':'Not';redirect('Ho