2012-04-17 32 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

相關問題