标签: duplicates

选择一行没有重复的条目

在mysql表中info我有:

ID,姓名,城市,日期,状态

我想从"info"中选择所有名称进行查询

$query = mysql_query("SELECT name FROM info WHERE status = 1 ORDER BY id") 
         or die(mysql_error());

while ($raw = mysql_fetch_array($query)) 
{
  $name = $raw["name"];
  echo ''.$name.'<br>';
}
Run Code Online (Sandbox Code Playgroud)

好吧,结果是它返回所有条目.我想回复所有条目没有重复.

说:在原始的"名称"下,我们插入了名字"约翰"10次.
我想只回应一次.这可能吗?

mysql sql select duplicates

17
推荐指数
3
解决办法
7万
查看次数

模糊匹配重复数据删除小于指数时间?

我有一个大型数据库(可能在数百万条记录中),文本串相对较短(按街道地址,名称等顺序排列).

我正在寻找一种去除不精确重复的策略,模糊匹配似乎是首选方法.我的问题:许多文章和SO问题涉及将单个字符串与数据库中的所有记录进行匹配.我希望立即对整个数据库进行重复数据删除.

前者是线性时间问题(将值与一百万个其他值进行比较,每次计算一些相似性度量).后者是一个指数时间问题(将每个记录的值与每个其他记录的值进行比较;对于一百万条记录,这与前一个选项的1,000,000次计算相比,大约为5 x 10 ^ 11次计算).

我想知道是否有另一种方法,而不是我提到的"蛮力"方法.我想可能生成一个字符串来比较每个记录的值,然后对具有大致相等的相似性度量的字符串进行分组,然后通过这些组运行暴力方法.我不会达到线性时间,但它可能有所帮助.此外,如果我正确地考虑这一点,这可能会错过字符串A和B之间潜在的模糊匹配,因为它们与字符串C(生成的校验字符串)的相似性尽管彼此非常相似但是非常不同.

有任何想法吗?

PS我意识到我可能在时间复杂度上使用了错误的术语 - 这是一个我基本掌握的概念,但不够好,所以我可以在现场将算法放入适当的类别.如果我使用了错误的术语,我欢迎更正,但希望我至少得到了我的观点.

编辑

一些评论者提出,鉴于记录之间的模糊匹配,我的策略是选择要删除哪些(即给出"foo","boo"和"coo",这将被标记为重复并删除).我应该注意,我不是在寻找自动删除.其目的是在6000万个记录数据库中标记可能的重复数据,以供人工审查和评估之用.如果有一些误报,可以,只要它是一个大致可预测/一致的数量.我只需要了解复制品的普遍程度.但是如果模糊匹配传递需要一个月才能运行,那么这首先不是一个选项.

algorithm fuzzy duplicates time-complexity record-linkage

17
推荐指数
1
解决办法
9313
查看次数

使用带有重复项的已排序数组的二进制搜索

我的任务是创建一个方法,打印所有索引,其中值x在排序数组中找到.

据我所知,如果我们只是从0到N(数组的长度)扫描数组,它将有一个O(n)最坏情况的运行时间.由于将传递给方法的数组将被排序,我假设我可以利用二进制搜索,因为这将是O(log n).但是,这仅在数组具有唯一值时才有效.由于二进制搜索将在第一次"查找"特定值之后完成.我正在考虑进行二进制搜索以在排序数组中查找x,然后检查此索引之前和之后的所有值,但是如果数组包含所有x值,那么它似乎不会好得多.

我想我要问的是,有没有更好的方法来找到排序数组中特定值的所有索引,这些索引优于O(n)?

public void PrintIndicesForValue42(int[] sortedArrayOfInts)
{
    // search through the sortedArrayOfInts

    // print all indices where we find the number 42. 
}
Run Code Online (Sandbox Code Playgroud)

例如:sortedArray = {1,13,42,42,42,77,78}将打印:"在指数中发现42:2,3,4"

java duplicates binary-search

17
推荐指数
2
解决办法
4万
查看次数

从数组中删除重复项,比较其对象的属性

假设我有一个类Event,它有2个属性:action(NSString)和date(NSDate).

假设我有一个Event对象数组.问题是"日期"属性可以匹配.

我需要删除重复项,这意味着具有相同日期的2个不同对象是重复的.

我可以删除任何字符串或nsdates数组中的重复项,它们很容易比较.但是如何使用复杂对象来处理它们的属性呢?

不要问我到目前为止我做了什么,因为我脑子里唯一想到的就是冒泡,但这是一个新手解决方案,而且很慢.

非常感谢任何帮助(链接,tuts,代码).

提前致谢.

编辑

感谢dasblinkenlight,我制作了一个自定义方法:

- (NSArray *)removeDuplicatesInArray:(NSArray*)arrayToFilter{

    NSMutableSet *seenDates = [NSMutableSet set];
    NSPredicate *dupDatesPred = [NSPredicate predicateWithBlock: ^BOOL(id obj, NSDictionary *bind) {
        YourClass *e = (YourClass*)obj;
        BOOL seen = [seenDates containsObject:e.propertyName];
        if (!seen) {
            [seenDates addObject:e.when];
        }
        return !seen;
    }];
    return [arrayToFilter filteredArrayUsingPredicate:dupDatesPred];
} 
Run Code Online (Sandbox Code Playgroud)

YourClass是对象所属类的名称,并且propertyName是要比较的对象的属性.

假设self.arrayWithObjects包含YourClass的对象.

填充后,使用

self.arrayWithObjects = [self removeDuplicatesInArray:self.arrayWithObjects];

你完成了

所有信用到dasblinkenlight.干杯!

sorting iphone objective-c duplicates duplicate-removal

17
推荐指数
1
解决办法
6937
查看次数

Java LinkedList - 检索操作之间的差异

以下每组元素检索操作中的不同方法之间是否存在差异LinkedList

返回null +删除操作: poll(),pollFirst().

返回null +不删除操作: peek(),peekFirst().

引发异常+删除操作: pop(),remove(),removeFirst().

抛出异常+不删除操作: element(),getFirst().

插入方法中存在类似的重复.

如果没有这样的差异,我希望在方法的javadoc中提到它(类似于旧的"这就像调用......").它只是一个草率的文件,还是我错过了什么?

java javadoc linked-list duplicates

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

根据多个列删除重复记录

在我们的系统中,我们从外部数据库运行每小时导入.由于导入脚本中的错误,现在存在一些重复记录.

如果任何记录具有相同的:legacy_id和,则认为副本:company.

我可以运行哪些代码来查找和删除这些重复项?

我正在玩这个:

Product.select(:legacy_id,:company).group(:legacy_id,:company).having("count(*) > 1")
Run Code Online (Sandbox Code Playgroud)

它似乎返回了一些副本,但我不确定如何从那里删除?

有任何想法吗?

sql activerecord ruby-on-rails duplicates rails-activerecord

17
推荐指数
1
解决办法
4255
查看次数

更优雅的方法来检查C++数组中的重复项?

我在C++中编写此代码作为uni任务的一部分,我需要确保数组中没有重复项:

// Check for duplicate numbers in user inputted data
    int i; // Need to declare i here so that it can be accessed by the 'inner' loop that starts on line 21
    for(i = 0;i < 6; i++) { // Check each other number in the array
        for(int j = i; j < 6; j++) { // Check the rest of the numbers
            if(j != i) { // Makes sure don't check number against itself
                if(userNumbers[i] == userNumbers[j]) { …
Run Code Online (Sandbox Code Playgroud)

c++ arrays duplicates

16
推荐指数
6
解决办法
7万
查看次数

pandas group by year,按销售列排名,在具有重复数据的数据框中

我想创建一年的排名(因此在2012年,经理B为1. 2011年,经理B再次为1).我和pandas rank函数挣扎了一段时间,并且不想求助于for循环.

s = pd.DataFrame([['2012','A',3],['2012','B',8],['2011','A',20],['2011','B',30]], columns=['Year','Manager','Return'])

Out[1]:     
   Year Manager  Return    
0  2012       A       3    
1  2012       B       8    
2  2011       A      20    
3  2011       B      30
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是附加代码(之前认为这不相关):

s = pd.DataFrame([['2012', 'A', 3], ['2012', 'B', 8], ['2011', 'A', 20], ['2011', 'B', 30]], columns=['Year', 'Manager', 'Return'])
b = pd.DataFrame([['2012', 'A', 3], ['2012', 'B', 8], ['2011', 'A', 20], ['2011', 'B', 30]], columns=['Year', 'Manager', 'Return'])

s = s.append(b)
s['Rank'] = s.groupby(['Year'])['Return'].rank(ascending=False)

raise Exception('Reindexing only valid with uniquely valued Index '
Exception: Reindexing only …
Run Code Online (Sandbox Code Playgroud)

python duplicates rank pandas pandas-groupby

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

如何在pandas DataFrame中选择和删除具有重复名称的列

我有一个巨大的DataFrame,有些列有相同的名称.当我尝试选择一个存在两次的列时(例如del df['col name']df2=df['col name'])我得到一个错误.我能做什么?

python duplicates multiple-columns dataframe pandas

16
推荐指数
3
解决办法
1万
查看次数

在pandas数据帧中对列重复进行分组

现在有很多类似的问题,但大多数都回答了如何删除重复的列.但是,我想知道如何创建元组列表,其中每个元组包含重复列的列名.我假设每列都有一个唯一的名称.只是为了进一步说明我的问题:

df = pd.DataFrame({'A': [1, 2, 3, 4, 5],'B': [2, 4, 2, 1, 9],
                   'C': [1, 2, 3, 4, 5],'D': [2, 4, 2, 1, 9],
                   'E': [3, 4, 2, 1, 2],'F': [1, 1, 1, 1, 1]},
                   index = ['a1', 'a2', 'a3', 'a4', 'a5'])
Run Code Online (Sandbox Code Playgroud)

然后我想要输出:

[('A', 'C'), ('B', 'D')]
Run Code Online (Sandbox Code Playgroud)

如果你今天感觉很棒,那么也可以将相同的问题扩展到行.如何获取每个元组包含重复行的元组列表.

python numpy duplicates dataframe pandas

16
推荐指数
3
解决办法
1555
查看次数