2 annbnncnnd AnnBnnCnnD 于 2012.11.30 10:54 提问

在android中正确的SQlite查询语法

要求根据传递参数获取数据库中的值。

比如,查询条件为年龄38岁,女,艺术家:

String age=38;
String gender=female;
String job=artist;

但是实现代码rawQuery中出现一个语法错误

代码:

public Cursor getData(String age, String gender, String job) {
        try {
            Cursor c = mDb.rawQuery("SELECT * FROM mytable order by Name asc WHERE Age='"+age+"'"  WHERE Gender='"+gender+"'" WHERE Job='"+job+"'", null);
            if (c != null) {
                c.moveToNext();
            }
            return c;
        } catch (SQLException mSQLException) {
            Log.e(TAG, "getData>>" + mSQLException.toString());
            throw mSQLException;
        }

    }

请高手帮忙修正这个错误,提前先谢谢了

1个回答

cytown
cytown   2012.11.30 11:37
已采纳

order by 应该在最后...... 从来没写过sql么?

Sn_Keys
Sn_Keys 晕,12年的帖子=_
接近 3 年之前 回复
Sn_Keys
Sn_Keys 晕,12年的帖子=_
接近 3 年之前 回复
Sn_Keys
Sn_Keys 除了前面指出的 order by 不能写在where 之前,where条件间使用 and / or 连接,不是使用 where
接近 3 年之前 回复
AnnBnnCnnD
AnnBnnCnnD Cursor c = mDb.rawQuery("SELECT * FROM mytable WHERE Age LIKE \""+age+"\" AND Gender LIKE \""+gender+"\" AND Job LIKE \""+job+"\" order by Name asc", null);是这样?
5 年多之前 回复
AnnBnnCnnD
AnnBnnCnnD 嗯,不太熟,
5 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!