SQLite / Javascript:如何知道A列中的所有值何时相同

SQLite / Javascript: How to know when all values in column A are identical

本文关键字:何时相 Javascript 何知道 SQLite      更新时间:2023-09-26

作为对数千行进行向下钻取文本搜索的一部分,其中许多行在 A 列中包含相同的数据,我想知道何时 A 列的 sqlite 结果集中的所有行都相同。如果搜索词是"ai",并且 A 列 = "痛苦"的结果集中的所有行都执行此功能。

那么我如何以编程方式,无论是在 sqlite 中还是在结果集上使用 javascript 询问:如果 A 列中的所有行都相同?

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

谢谢!

SELECT columnA, count(*) 
FROM  MyTable 
WHERE myField like '%AI%'  
GROUP BY columnA

可能不会是最快的,因为它在双方都做了一个百分比......这是一篇 SQLLite 文章

您可以在字段中对AI使用正则表达式搜索,这可能会更快

已更新,但我仍然认为我不能完全理解问题样本数据会有所帮助..

所以

列纳在痛苦中在痛苦中在巢穴中在巢穴中

你想看吗

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,则列 A 具有超过 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}
}