その列のように構築された、Android 上の既存の sqlite データベースで次のことを行いたい: id --- rule --- path --- someotherdata
たとえば、ルールにファイル名の一部が含まれるようになりました (「mypicture」などの些細なことや、「jpg」などのファイルタイプのいずれか)。ここでやりたいことは、入力文字列の一部を含むすべてのルールを取得するクエリを書きたいということです。次の例を試してみました:文字列値 = "somepicturefilename.jpg"
私の声明:
"SELECT DISTINCT * FROM " + TABLE_RULES + " WHERE instr('"+ value + "',rule)!=0 ORDER BY " + KEY_ID+ " DESC;"
ステートメントはJavaであるため、「値」をステートメントに挿入する必要があります。
ただし、これは機能しません。私はSQLにもSQLiteにも精通していません。誰かtip=を持っていますか?)ありがとう。
編集:charindexも試しましたが、どちらも機能しませんでした。
編集:より詳細な例です。以下のデータベースが提供されます。
id --- rule ---
1 "jpg"
2 "ponies"
3 "gif"
4 "pdf"
ここで、ユーザーはファイル名を入力します。「poniesAsUnicorns.jpg」としましょう。したがって、「poniesAsUnicorns.jpg」は入力文字列であり、「poniesAsUnicorns.jpg」には「jpg」と「ponies」の両方が含まれているため、クエリは id#1 と id#2 の両方に一致する必要があります。
それが私が望むものを明確にすることを願っています。
編集:これも私が試したものです:
String statement = "SELECT DISTINCT * FROM " + TABLE_RULES
+ " WHERE charindex(rule,'" + value
+ "') > 0 ORDER BY " + KEY_ID + " DESC;";
ただし、「そのような操作はありません」という例外がスローされます。