2011-03-18 49 views
5

我有一個關於員工表3列像下面的代碼:如何用兩種條件查詢SQLite數據庫?

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

現在我只是想展示在同一個DEPT和CITY兩個員工(E.I在胡志明市和銷售部門的員工都)。我如何查詢以獲取它?

回答

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

它工作在SQL但它並不在SQLite的工作。如何在SQLite中使用該命令的語法:db.query(表,列,選擇,selectionArgs,groupBy,having,orderBy)。 – DienTrinh 2011-03-18 03:18:44

+0

我嘗試使用Cursor cursor = db.query(TABLE_NAME,new String [] {_ID,NAME,DEPT,CITY},DEPT +「=?」+「AND」+ CITY +「=?」,new String [] {「Sales」,「HCM」},null,null,null);.但是仿真器顯示錯誤 – DienTrinh 2011-03-18 03:34:01

+0

不應該使用db.rawQuery方法而不是db.query運行這種類型的查詢嗎?我認爲這是問題所在。 – 2013-02-18 16:37:31

9

@DienTrinh,你說得對,要注意周圍AND的空間。這應該適合你。

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

解決的辦法是:

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