Utilizar el operador OR con 2 marcadores de posición con el mismo valor

Soy un recién llegado a la programación de Android y en busca de ayuda con mi consulta. Estoy tratando de encontrar todos los accesorios donde el id de un equipo seleccionado es igual al equipo de casa team_1_id o equipo de visitante team_2_id

Tengo la siguiente consulta, es sólo devolver los resultados donde el id es team_1_id y no team_2_id

 public List < Fixture > getTeamFixtures(int id) { List < Fixture > fixtureList = new ArrayList < Fixture > (); // Select All Query String selectQuery = " SELECT fixtures.id, fixtures.team_1_id, fixtures.team_2_id, fixtures.date, fixtures.time, fixtures.pitch, teams.team_name, teams_1.team_name AS awayTeam, leagues.league_name, leagues.id FROM fixtures INNER JOIN teams ON fixtures.team_1_id = teams.id INNER JOIN teams AS teams_1 ON fixtures.team_2_id = teams_1.id INNER JOIN teams_vs_leagues ON teams.id = teams_vs_leagues.team_id INNER JOIN leagues ON teams_vs_leagues.league_id = leagues.id WHERE fixtures.team_1_id = ? OR fixtures.team_2_id = ? "; SQLiteDatabase db = this.getWritableDatabase(); Cursor cursor = db.rawQuery(selectQuery, new String[] { String.valueOf(id) }); // looping through all rows and adding to list if (cursor.moveToFirst()) { do { Fixture fixture = new Fixture(); fixture.setId(Integer.parseInt(cursor.getString(0))); fixture.setTeamId1(Integer.parseInt(cursor.getString(1))); fixture.setTeamId2(Integer.parseInt(cursor.getString(2))); fixture.setDate(cursor.getString(3)); fixture.setTime(cursor.getString(4)); fixture.setPitch(cursor.getString(5)); fixture.setTeamName1(cursor.getString(6)); fixture.setTeamName2(cursor.getString(7)); fixture.setLeagueName(cursor.getString(8)); fixture.setLeagueId(Integer.parseInt(cursor.getString(9))); // Adding team to list fixtureList.add(fixture); } while (cursor.moveToNext()); } // close inserting data from database db.close(); // return fixturelist return fixtureList; } 

Siempre que intento

 WHERE fixtures.team_1_id = ? 

O

 WHERE fixtures.team_2_id = ? 

La consulta devuelve los resultados relevantes, pero quiero poder ver si el id aparece en team_1_id o team_2_id

Cualquier ayuda sería muy apreciada.

Como se documenta , puede reutilizar un parámetro dándole un número explícito:

 ... WHERE fixtures.team_1_id = ?1 OR fixtures.team_2_id = ?1 ... 

O dándole un nombre:

 ... WHERE fixtures.team_1_id = :TeamID OR fixtures.team_2_id = :TeamID ... 

Puede utilizar in :

 WHERE ? in (fixtures.team_1_id, fixtures.team_2_id) 
  • ¿El depurador de Android trunca mensajes de depuración?
  • Obtener datos de una base de datos vs obtener datos de un mapa hash
  • Seleccione un primer carácter distinto basado en la columna de cadena
  • Android SQCipher ¿Necesito cerrar la base de datos?
  • Android.database.sqlite.SQLITeException: no hay tal tabla: admin mientras compila: INSERT INTO ... etc
  • Base de datos SQlite programaticamente convertir en formato de archivo de Excel en Android
  • El ejemplo de NotesDbAdapter es para una tabla, ¿qué hay de varias tablas?
  • Visualización de la imagen desde la base de datos sqlite con el cursor en android
  • Android: Ampliación del libro de contactos del usuario. Rendimiento ContentProvider vs Sqlite vs Lista en la memoria
  • SQLIte DROP tabla ROLL volver
  • Insertar valores en la base de datos SQLite manualmente
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.