0

何千もの行のドリル ダウン テキスト検索の一部として、その多くは列 A に同じデータを含んでいます。列 A の sqlite 結果セットのすべての行がいつ同じかを知りたいです。例えば。検索語が「ai」で、列 A の結果セットのすべての行 = 「痛み」の場合、この機能を実行します。

では、sqlite で、または結果セットで JavaScript を使用して、プログラムでどのようにすればよいでしょうか: 列 A のすべての行が同一であるかどうか。

それはおそらく単純なことですが(願わくば)、今日は思い浮かびません...

ありがとう!

4

3 に答える 3

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

両側で % を実行しているため、おそらく最速ではないでしょう...これはSQLLiteの記事です

フィールドでAIの正規表現検索を使用できます。これはおそらく高速です

更新されましたが、質問のサンプルデータが役立つことを完全には理解していないと思います..だから

COLUMNA イン ペイン イン ペイン イン ペイン イン ザ レア イン レア

見たいですか

in pain      2
in the lair  2

または、表示しますか no records found(ai を含む columnA のすべての値が一致しなかったためですか?)

---これがあなたの求めているものかもしれません...

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

mcount > 1 の場合、columnA には '%AI%' に一致する値が複数あります

于 2012-04-17T01:31:55.553 に答える
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}
}
于 2012-08-10T19:41:02.743 に答える
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 の値のディクショナリを維持しながら行を反復するだけで、ディクショナリに 2 つのキーがある場合、すべての結果が同じではないことがわかります。

于 2012-04-17T18:39:04.433 に答える