首页 > 解决方案 > Android Studio - 光标子句的问题 WHERE OR

问题描述

我正在使用带有 Where 条件的游标调用在 SQLite 中创建的表并且工作正常,但是当我添加子句“OR”时它不起作用。我的意思是,如果我插入第一个字段的值,它会正常工作,但是当我插入第二个字段的值时,它会在存在时显示“动词不存在”。

还有另一种方法可以使用 rowQuery 来调用带有查询的表吗?

这是代码:

    public List<Items> mostrarVerbos(){
    BaseDeDatos admin = new BaseDeDatos(getApplicationContext(), "verbos.db",
            getApplicationContext(), 19);
    SQLiteDatabase db = admin.getReadableDatabase();
    String[] parametros = {etVerbos.getText().toString()};
    Cursor cursor = db.rawQuery("SELECT * FROM verbos WHERE verbo_por =? OR verbo_esp =?", parametros);
    List<Items> verbos= new ArrayList<>();
    if(cursor.moveToFirst()){
        do {
            verbos.add(new Items(cursor.getString(1), cursor.getString(4), cursor.getString(5), cursor.getString(6), cursor.getString(7), cursor.getString(8)));
        }while (cursor.moveToNext());
    }else{
        Toast.makeText(getApplicationContext(), "The verb doesn't exist", Toast.LENGTH_LONG).show();
    }
    return verbos;
}

我的数据库:

package com.example.rodrigo.libros;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class BaseDeDatos extends SQLiteOpenHelper {

public BaseDeDatos(Context context, String s, Context applicationContext, int i) {
    super(context, "verbos.db", null, 21);
}

@Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table verbos(id integer, verbo_por text, verbo_esp text, referencia text, eu text, tu text, voce text, nos text, voces text)");
        db.execSQL("insert into verbos values(1, 'abalar', 'zarandear', 'zarandeo', 'abalo', 'abalas', 'abala', 'abalamos', 'abalam')," +
                "(1, NULL, NULL, 'zarandeaba', 'abalava', 'abalavas', 'abalava', 'abalávamos', 'abalavam')," +
                "(1, NULL, NULL, 'zarandeé', 'abalei', 'abalaste', 'abalou', 'abalamos', 'abalaram')," +
                "(1, NULL, NULL, 'zarandeara', 'abalara', 'abalaras', 'abalara', 'abaláramos', 'abalaram')," +
                "(1, NULL, NULL, 'zarandearé', 'abalarei', 'abalarás', 'abalará', 'abalaremos', 'abalarão')," +
                "(1, NULL, NULL, 'zarandearía', 'abalaria', 'abalarias', 'abalaria', 'abalaríamos', 'abalariam')," +
                "(1, NULL, NULL, 'zarandee', 'abale', 'abales', 'abale', 'abalemos', 'abalem')," +
                "(1, NULL, NULL, 'zarandease', 'abalasse', 'abalasses', 'abalasse', 'abalássemos', 'abalassem')," +
                "(1, NULL, NULL, 'zarandeando', 'abalando', 'abalando', 'abalando', 'abalando', 'abalando')," +
                "(1, NULL, NULL, 'zarandeado', 'abalado', 'abalado', 'abalado', 'abalado', 'abalado')");
}

    @Override
    public void onUpgrade(SQLiteDatabase db, int i, int i1) {
        db.execSQL("DROP TABLE IF EXISTS verbos");
        db.execSQL("create table verbos(id integer, verbo_por text, verbo_esp text, referencia text, eu text, tu text, voce text, nos text, voces text)");
        db.execSQL("insert into verbos values(1, 'abalar', 'zarandear', 'zarandeo', 'abalo', 'abalas', 'abala', 'abalamos', 'abalam')," +
                "(1, NULL, NULL, 'zarandeaba', 'abalava', 'abalavas', 'abalava', 'abalávamos', 'abalavam')," +
                "(1, NULL, NULL, 'zarandeé', 'abalei', 'abalaste', 'abalou', 'abalamos', 'abalaram')," +
                "(1, NULL, NULL, 'zarandeara', 'abalara', 'abalaras', 'abalara', 'abaláramos', 'abalaram')," +
                "(1, NULL, NULL, 'zarandearé', 'abalarei', 'abalarás', 'abalará', 'abalaremos', 'abalarão')," +
                "(1, NULL, NULL, 'zarandearía', 'abalaria', 'abalarias', 'abalaria', 'abalaríamos', 'abalariam')," +
                "(1, NULL, NULL, 'zarandee', 'abale', 'abales', 'abale', 'abalemos', 'abalem')," +
                "(1, NULL, NULL, 'zarandease', 'abalasse', 'abalasses', 'abalasse', 'abalássemos', 'abalassem')," +
                "(1, NULL, NULL, 'zarandeando', 'abalando', 'abalando', 'abalando', 'abalando', 'abalando')," +
                "(1, NULL, NULL, 'zarandeado', 'abalado', 'abalado', 'abalado', 'abalado', 'abalado')");
    }
}

标签: androidsqlite

解决方案


推荐阅读