みなさん、こんにちは。
DBから取得する必要がある行の値である文字列を含む配列があるとしましょう。配列は以下のようになります。
searchStringArray = {'qwe', 'rty', 'asd',' fgh', 'zxc'}簡単な方法で、クエリ内にWHERE文を作成できます。
"WHERE
t1.column1 IN (' " || Concat Items(searchStringsArray, " ', ' ")|| " ' )"これを解析すると、次の文字列が返されます。
"WHERE
t1.column1 IN('qwe', 'rty', 'asd', 'fgh', 'zxc')"しかし、私のsearchStringArrayに完全な文字列ではなく部分的な文字列があるとどうなりますか?
スクリプトを単純化する必要があります。現在、複数のContainsステートメントを含むクエリがあります。これは、SQLでは次のようになります。
"WHERE<BR />(t1.column1 LIKE '%qwe%') OR
(t1.column1 LIKE '%rty%') OR
(t1.column1 LIKE '%asd%') OR
(t1.column1 LIKE '%fgh%') OR
(t1.column1 LIKE '%zxc%')"
これは文字列配列から構築するのはかなり面倒です。私はこれと同じように見える同等のWHEREステートメントを書くことができるかどうか疑問に思いました:
"WHERE
t1.column1 IN ('%qwe%', '%rty%', '%asd%', '%fgh%', '%zxc%')"またはこのようなもの:
"WHERE
t1.column1 MATCH('%qwe%' OR '%rty%' OR '%asd%' OR '%fgh%' OR '%zxc%')"またはを使って構築するのがより簡単な類似のもの連結アイテム() 。上の2つの例を試しましたが、それらは有効なSQLite構文であるように見えますが、それらはJSLでは機能しません。助言がありますか?
ありがとう、
M