作为数千行的向下钻取文本搜索的一部分,其中许多行在列A中包含相同的数据,我想知道列A的sqlite结果集中的所有行是否都相同。例如:如果搜索项是'ai‘,并且列A= 'in pain’的结果集中的所有行都执行此函数。
那么,我该如何编程,无论是在sqlite中还是在结果集上使用javascript来询问:如果列A中的所有行都是相同的?
这可能是一些简单的东西(希望如此),但今天我就是不这么认为……
谢谢!
发布于 2012-08-11 03:41:03
在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}
}发布于 2012-04-17 09:31:56
SELECT columnA, count(*)
FROM MyTable
WHERE myField like '%AI%'
GROUP BY columnA可能不会是最快的,因为它在两边都做了%…这是一个SQLLite article
你可以使用正则表达式搜索AI on field,这样可能会更快
更新了,但我仍然不认为我完全理解样本数据会有帮助的问题。所以
痛苦中的哥伦纳在巢穴中痛苦
你想看看吗?
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有多个值与'%AI%‘匹配
发布于 2012-04-18 02:39:04
在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值的字典,当字典中有两个键时,您知道并不是所有的结果都是相同的。
https://stackoverflow.com/questions/10183868
复制相似问题