私は、条件が"高いところから飛び降りる "に近い文字ワイルドカード"_"
を使用しようとしています。私はrawQueryとさまざまなクエリを試しました硬質および軟質のコード化されたパラメータ。キャラクターワイルドカード"_"
を無視して、すべての行を返すか、まったく返しません。保持rawQueryワイルドカード `` _ '`not working
データは、それがオレンジ色であることを意味する列がオブジェクト
("red,orange,yellow,green,blue,indego,violet,black")
の色を表すことができ、行の色は「01001000」とすることができる、例えばoblectの特徴を表すいくつかの列にあり、青、赤、黄などではありません。他の列には、1つの文字が含まれます。サイズには、s、mまたはl(マッピングの小、中、大)が含まれます。
私の最初の意図は、選択した文字の「どこに」をrawQuery(myselect,null)
に渡してコードすることでした。ここで、myselectは、ユーザーが選択したいくつかの機能に対応してコードでコンパイルされました。 = "l"
"___1_01__"
よう"_1__10__"
とcolour2などのcolour1とサイズと以下の文は、罰金FirefoxのSQLiteのマネージャ
db.rawQuery("SELECT _id , name FROM widgets WHERE " + mywhere , null);
に渡さ - :
すなわちmywhere文字列を返すようにコンパイルされています
SELECT _id , name FROM widgets WHERE colour1 like "_1__10_" and colour2 like "__1_01___" and size ="m"
調査するために、where句の1つの列にクエリを切り詰めました
myselect ="SELECT _id ,name,FROM widgets where colour1 like \"1_______\"";
cursor = db.rawQuery(myselect,null);
返さない行
myselect ="SELECT _id ,name,FROM widgets where colour1 like \"%1_______%\"";
cursor = db.rawQuery(myselect,null);
戻り行が、全て
myselect ="SELECT _id ,name, FROM widgets where colour1 like ?";
String[] whereArguments = { "1_______" };
cursor = db.rawQuery(myselect,whereArguments);
返さない行
myselect ="SELECT _id ,name, FROM widgets where colour1 like ?";
String[] whereArguments = { "%1_______%" };
cursor = db.rawQuery(myselect,whereArguments);
(私はこれを期待される)最初の文字に1を持っていません
は行を返しますが、すべてが最初に1を持っているわけではありません
をchar型しかし、私は
myselect ="SELECT _id ,name, FROM widgets where colour1 like ?";
String[] whereArguments = { "10000000" };
cursor = db.rawQuery(myselect,whereArguments);
から任意の行を取得いけないし、「10000000」
を含む行があるいずれかの任意のソリューションを持っていますか?私は検索しようとしましたが、それはrawQueryとクエリがAndroidで疑わしい機能を持っているようです。
。例えば、thisを参照してください。必ず私が見つけているわけではありません私の問題FirefoxのSQLite Managerで作成したデータをAndroidのSQLiteデータベースにエクスポートして、各カラムにスペースが追加されていることに気が付かずに、 "10000000"というデータが実際に "10000000" – user1108608