2013-01-05 41 views
3

一對夫婦關於數據庫查詢的查詢搜索NULL在Android的數據庫查詢和OR聲明:如何選擇

所以我有以下的數據庫查詢,其中有一個WHERE語句包括三個字符串變量(rackingSystem ,製造商,「琥珀風險」)。

public Cursor fetchComponentsAndSpecForManufacturer(long inspectionId, String rackingSystem, String manufacturer) { 
    Cursor mCursor = 
      rmDb.query(true, DAMAGED_COMPONENTS_TABLE, new String[] { 
        DAMAGED_COMPONENT_ID, 
        LOCATION_LINK, 
        RUN_LINK, 
        AREA_LINK, 
        INSPECTION_LINK, 
        LOCATION_REF, 
        RACKING_SYSTEM, 
        COMPONENT, 
        COMPONENT_TYPE, 
        QUANTITY, 
        POSITION, 
        RISK, 
        ACTION_REQUIRED, 
        NOTES_GENERAL, 
        MANUFACTURER, 
        TEXT1, 
        TEXT2, 
        TEXT3, 
        TEXT4, 
        NOTES_SPEC, 
        SPEC_SAVED}, 
        INSPECTION_LINK + " = " + inspectionId + " AND " + RACKING_SYSTEM + " = ? AND " + MANUFACTURER + " = ? AND " + RISK + " = ? ", 
        new String[] {rackingSystem, manufacturer, "Amber Risk"}, 
        COMPONENT_TYPE + ", " + TEXT1 + ", " + TEXT2 + ", " + TEXT3 + ", " + TEXT4 + ", " + NOTES_SPEC, 
        null, null, null); 
    if (mCursor != null) { 
     mCursor.moveToFirst(); 
    } 
    return mCursor; 
} 

問題1:

我如何尋找NULL作爲,在上面的例子中,製造商可能會在數據庫中NULL(因爲用戶可能沒有inputed任何東西到數據庫中該位還)。

問題2:

我可以在WHERE語句中包含OR語句嗎?因此,目前我正在爲所有「琥珀風險」記錄進行篩選,但我還需要在此列表中包含「紅色風險」條目。如果我可以這樣做,我應該如何編輯WHERE語句?

+0

sql'where X is null' or'isnull(x)'? –

回答

6

如何尋找NULL作爲,在上面的例子中,製造商可以在數據庫

使用MANUFACTURER + " IS NULL"爲NULL。

我可以在WHERE語句中包含OR語句嗎?

是的。讓我們來尋找空或空廠商:

MANUFACTURER + " IS NULL OR " + MANUFACTURER + " = ''" 

在我seraching對於那些「琥珀風險」的所有記錄的那一刻

如此,但我還需要包括在那些「這個列表中的條目紅色風險「。

INSPECTION_LINK + " = " + inspectionId + " AND " + RACKING_SYSTEM + " = ? AND " + 
     MANUFACTURER + " IS NULL AND (" + RISK + " = ? OR " + RISK + " = ?)", 
new String[] {rackingSystem, manufacturer, "Amber Risk", "Red Risk"}, 
+0

啊,但我使用變量(製造商)搜索MANUFACTURER - 這可能是也可能不是NULL。如果它是NULL,它現在導致我的應用程序崩潰(任何想法,爲什麼這可能是?)。感謝OR語句的確認,會給你一個機會。 – Scamparelli

+0

「,但我使用變量(製造商)搜索MANUFACTURER」好的,所以你想在製造商部分完全'_ null'的時候去簽名? – Sam

+0

恐怕不是,製造商可能是空的,但可能有其他數據附加到我需要顯示的記錄(即製造商將只是空白,當我輸出數據).. – Scamparelli