作为对数千行进行深入文本搜索的一部分,其中许多行在 A 列中包含相同的数据,我想知道 A 列的 sqlite 结果集中的所有行何时都相同。例如。如果搜索词是 'ai' 并且列 A = 'in pain' 的结果集中的所有行都执行此功能。
那么我如何以编程方式,无论是在 sqlite 中还是在结果集上使用 javascript 询问:A 列中的所有行是否都相同?
这可能很简单(希望如此),但它今天不会来找我......
谢谢!
作为对数千行进行深入文本搜索的一部分,其中许多行在 A 列中包含相同的数据,我想知道 A 列的 sqlite 结果集中的所有行何时都相同。例如。如果搜索词是 'ai' 并且列 A = 'in pain' 的结果集中的所有行都执行此功能。
那么我如何以编程方式,无论是在 sqlite 中还是在结果集上使用 javascript 询问:A 列中的所有行是否都相同?
这可能很简单(希望如此),但它今天不会来找我......
谢谢!
SELECT columnA, count(*)
FROM MyTable
WHERE myField like '%AI%'
GROUP BY columnA
可能不会是最快的,因为它在两边都做了一个 % ......这是一篇SQLLite 文章
您可以在字段上使用正则表达式搜索 AI,这可能会更快
已更新,但我仍然不认为我完全理解问题示例数据会有所帮助.. 所以
COLUMNA in pain in pain in the 巢穴
你想要看
in pain 2
in the lair 2
还是您想查看
no records found
(因为列 A 中包含 ai 的所有值都不匹配?)
---也许这就是你所追求的......
select count(*) mcount from (
SELECT columnA, count(*)
FROM MyTable
WHERE columnA like '%AI%'
GROUP BY columnA) innerResult
如果 mcount > 1,则 columnA 有超过 1 个匹配 '%AI%' 的值
这在 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 列值字典的行,当字典中有两个键时,您知道并非所有结果都相同。
在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}
}