2011-03-18 12 views
5

Tengo una tabla sobre el empleado con 3 columnas como siguiente código:¿cómo consulto la base de datos SQLite con dos condiciones?

db.execSQL("CREATE TABLE " + TABLE_NAME + " (" + _ID 
       + " INTEGER PRIMARY KEY AUTOINCREMENT, " + DEPT 
       + " TEXT NOT NULL," + NAME + " TEXT NOT NULL," + CITY + " TEXT NOT NULL);"); 

ahora sólo quiero mostrar a los empleados de la misma, tanto DEPT y CIUDAD (e.i tanto a los empleados en la ciudad de HCM y el departamento de ventas). ¿Cómo puedo consultar para obtenerlo?

Respuesta

1
SELECT * FROM Employees WHERE DEPT='Sales' AND City='HCM' 
+0

funciona en SQL pero no funciona en SQLite. ¿Cómo puedo usar ese comando en SQLite con la sintaxis: db.query (tabla, columnas, selección, selectionArgs, groupBy, having, orderBy). – DienTrinh

+0

He intentado usar Cursor cursor = db.query (TABLE_NAME, new String [] {_ID, NAME, DEPT, CITY}, DEPT + "=?" + "Y" + CITY + "=?", New String [] {"Ventas", "HCM"}, nulo, nulo, nulo) ;. Pero el emulador muestra un error – DienTrinh

+0

¿No debería ejecutarse este tipo de consulta con el método db.rawQuery en lugar de db.query? Creo que ese fue el problema. –

9

@DienTrinh, que estaba en lo correcto, tenga en cuenta los espacios alrededor de AND. Eso debería funcionar para ti.

Cursor cursor = db.query(TABLE_NAME, 
          new String [] {_ID, NAME, DEPT, CITY }, 
          DEPT +"=?" +" AND " + CITY +"=?", 
          new String[] {"Sales", "HCM" }, 
          null, null, null); 
2

La solución es:

SELECT * FROM Employess 
WHERE DEPT='Sales' COLLATE NOCASE AND City='HCM' COLLATE NOCASE 
Cuestiones relacionadas