0

開始文字と終了文字、および文字列の長さに応じてクエリを作成したい。私のデータベースには、hello、how、hurray、honeyがあるとします。データベースから蜂蜜を取得したいので、「h」で始まり「y」で終わる文字列を見つけるようなクエリを作成したいとします。単語の長さは 5 です。クエリを書きましたが、よろしいですか?

Cursor c = sqLiteDatabase.rawQuery("select * from " + MYDATABASE_TABLE
                + " where LENGTH(`" + MYDATABASE_FIELD + "`) = " + len
                + " and `" + MYDATABASE_FIELD + "` LIKE `" + part1 + "%"
                + part2 + "`", null);
4

2 に答える 2

1

2 番目のLIKE演算子は文字列であり、テーブル/列の名前ではないため、バッククォートで引用しないでください。さらに、パラメーターを使用すると、文字列の書式設定の問題が完全に回避されます。

Cursor c = sqLiteDatabase.rawQuery(
    "SELECT * FROM `" + MYDATABASE_TABLE + "` " +
      "WHERE LENGTH(`" + MYDATABASE_FIELD + "`) = " + len + " " +
        "AND `" + MYDATABASE_FIELD + "` LIKE ?",
    new String[] { part1 + "%" + part2 });
于 2013-02-11T18:16:19.127 に答える