2012-04-17 63 views
0

作为向成千上万行的向下搜索文本搜索的一部分,其中许多行包含列A中的相同数据,我想知道何时全部列A中sqlite结果集的行数相同。例如。如果搜索项是'ai',并且列A中的'in pain'中的结果集中的所有行都执行此功能。SQLite/Javascript:如何知道列A中的所有值何时都是相同的

那么我怎么编程,无论是在sqlite或使用JavaScript的结果集问:如果列A中的所有行是相同的?

这也可能是一些简单的(希望如此),但它只是今天不来找我......

谢谢!

回答

0

在db调用成功函数中使用Javascript

var detailsarr=[]; 
if (results.rows && results.rows.length) { 
for (var i = 0; i < results.rows.length; i++) { 
var details=results.rows.item(i).details; 
if(detailsarr.toString().indexOf(details)===-1){detailsarr.push('"'+details+'"');} 
    } 
detailsarr = '['+detailsarr+']'; 
var detailsdata=JSON.parse(detailsarr); 
if(detailsdata[1]){THEN ALL ROWS ARE NOT IDENTICAL} 
} 
0
SELECT columnA, count(*) 
FROM MyTable 
WHERE myField like '%AI%' 
GROUP BY columnA 

可能不会是最快的,因为它的两侧做了......%以下是SQLLite article

你可以使用AI正则表达式搜索上的字段,它很可能会更快

更新,但我仍然不认为我完全理解这个问题的样本数据将有助于..所以

COLUMNA 在巢穴疼痛 疼痛在巢穴你想看到

in pain  2 
in the lair 2 

或你想看到 no records found(因为所有在columnA包含AI不匹配的值?)

做---也许这就是你追求的...

select count(*) mcount from (
    SELECT columnA, count(*) 
    FROM MyTable 
    WHERE columnA like '%AI%' 
    GROUP BY columnA) innerResult 

如果mcount> 1,则columnA有超过1组的值匹配 '%AI%'

+0

即选择符合%AI%的行,但它并没有告诉我,如果在A列中的所有行都是一样的“中痛苦“,也许在那里有一排'在巢穴里'。我需要知道列A中所有行包含相同的东西的时间。 – 2012-04-17 17:04:53

+0

@ K'shin更新了回复,但是如果您想查看所有ai和他们的计数,或者没有找到记录或者需要什么指示? – xQbert 2012-04-17 17:22:09

+0

我期望有多行包含“ai”,问题是所有这些行在列A中的值是否相同?对于这个问题,True或False就足够了,但要查看每个不同行的多少记录对于其他事情会很方便;-) – 2012-04-17 20:28:47

0

这将是昂贵的SQL做:

SELECT ColumnA, (SELECT COUNT(*) FROM YourTable WHERE ColumnA LIKE '%ai%' AND ColumnA <> outer.ColumnA) AS OtherCount 
    FROM YourTable AS outer WHERE ColumnA LIKE '%ai%'; 

在JavaScript中,你只遍历保持A列值的字典行,当你在字典里有两把钥匙,你知道,不是所有的结果都是一样的。

+0

谢谢拉里,你可以显示javascript检查字典(dictionary = dictionary + newrow;)for> = 2键吗? – 2012-04-17 20:15:57

相关问题