如何寻找空在Android的数据库查询和放大器;在选择或声明 [英] How to search for NULL in Android database query & OR statement in selection

查看:160
本文介绍了如何寻找空在Android的数据库查询和放大器;在选择或声明的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对于一个数据库查询一对夫妇的查询:

所以,我有以下的数据库查询,其中有一个WHERE语句包括三个字符串变量(rackingSystem,制造商,琥珀风险)。

 公开光标fetchComponentsAndSpecForManufacturer(长inspectionId,字符串rackingSystem,字符串制造商){
    光标mCursor =
            rmDb.query(真,DAMAGED_COMPONENTS_TABLE,新的String [] {
                    DAMAGED_COMPONENT_ID,
                    LOCATION_LINK,
                    RUN_LINK,
                    AREA_LINK,
                    INSPECTION_LINK,
                    LOCATION_REF,
                    RACKING_SYSTEM,
                    零件,
                    COMPONENT_TYPE,
                    数量,
                    位置,
                    风险,
                    需要采取的行动,
                    NOTES_GENERAL,
                    制造商,
                    TEXT1,
                    TEXT2,
                    TEXT3,
                    文字4,
                    NOTES_SPEC,
                    SPEC_SAVED},
                    INSPECTION_LINK +=+ inspectionId +和+ RACKING_SYSTEM +=?和+ +制造商=?和+风险+=?,
                    新的String [] {rackingSystem,制造商,琥珀风险},
                    COMPONENT_TYPE +,+ TEXT1 +,+ TEXT2 +,+ TEXT3 +,+文本4 +,+ NOTES_SPEC,
                    NULL,NULL,NULL);
    如果(mCursor!= NULL){
        mCursor.moveToFirst();
    }
    返回mCursor;
}
 

问题1:

如何搜索为NULL作为,在上面的例子中,制造商可以为NULL在数据库中(如,用户可能没有inputed任何东西到数据库中该位尚未)。

问题2:

我可以包括在WHERE语句或声明?因此,在这一刻,我seraching为所有的琥珀风险的记录,但我还需要包括在那些红色风险这个列表条目。如果我能做到这一点,我应该怎么编辑WHERE语句?

解决方案
  

如何搜索为NULL作为,在上面的例子中,制造商可以为NULL在数据库中

使用制造商+IS NULL

  

我可以包括在WHERE语句或声明?

是的。让我们来寻找空或空的制造商:

 制造商+为空或+制造商+=''
 


  

所以此刻我seraching为所有的琥珀风险的记录,但我还需要包括在此列表中的条目红色风险。

  INSPECTION_LINK +=+ inspectionId +和+ RACKING_SYSTEM +=?AND+
        制造商+IS NULL AND(+风险+=?或+风险+=?),
新的String [] {rackingSystem,制造商,琥珀风险,红色风险},
 

a couple of queries regarding a database query:

So I have the following database query, which has a WHERE statement which includes three String variables (rackingSystem, manufacturer, "Amber Risk").

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;
}

Question 1:

How do I search for NULL as, in the above example, manufacturer may be NULL in the database (as the user may not have inputed anything into the database for that bit yet).

Question 2:

Can I include an OR statement in the WHERE statement? So at the moment I am seraching for all records that are "Amber Risk", but I need to also include in this list entries that are "Red Risk". If I can do this, how should I edit the WHERE statement?

解决方案

How do I search for NULL as, in the above example, manufacturer may be NULL in the database

Use MANUFACTURER + " IS NULL".

Can I include an OR statement in the WHERE statement?

Yes. Let's search for null or empty manufacturers:

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


So at the moment I am seraching for all records that are "Amber Risk", but I need to also include in this list entries that are "Red Risk".

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

这篇关于如何寻找空在Android的数据库查询和放大器;在选择或声明的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆