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

    }

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

0

1个回答

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

1
Sn_Keys
狂龙骄子 晕,12年的帖子=_
接近 4 年之前 回复
Sn_Keys
狂龙骄子 晕,12年的帖子=_
接近 4 年之前 回复
Sn_Keys
狂龙骄子 除了前面指出的 order by 不能写在where 之前,where条件间使用 and / or 连接,不是使用 where
接近 4 年之前 回复
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);是这样?
6 年多之前 回复
AnnBnnCnnD
AnnBnnCnnD 嗯,不太熟,
6 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android SqLite学习笔记——查数据
       使用Android SQLite原生数据库,SQLiteDatabase包含有四个参数不同的query函数,分别包含有7,8,9,10个参数。这么多的参数很难记,在这里以7个参数的query函数为例,介绍一下各个参数的意义,并且举一个自己敲的例子。 Cursor query ( String table, String[...
android检查sqlite数据库中是否存在某个元素
private boolean search_city(String str) { CityDBHelper dbHelper = new CityDBHelper(MainActivity.this, "city_db_2", null, 1); SQLiteDatabase db = dbHelper.getWritableDatabase(); Cursor curs
在sqlite中执行'in'查询操作,如何使用selectionargs匹配多个值
在安卓开发中,经常使用到sqlite作为本地持久化存储的解决方案。在androidSDK中,已经为我们提供了各种各样的增、删、改、查的api,尽管我们可以自己写sql语句然后执行db.rawsql()方法,但这种方法有一些风险,那就是拼接的关键字有可能是非法的,这样会造成很多意想不到并且很危险的后果。因此,建议使用sdk提供的api来做数据库操作,android已经为我们屏蔽了这一层风险。
Android SQLite数据库基本语法
1.创建一张表 create table 表名(字段名字 字段类型, 字段名字 字段类型); create table info(id int,name varchar(20)); 2.插入语句(增) 2.1.插入全列 insert into 表名 values(要添加的值…); 如果添加的字段的数据类型是int类型,直接写值。 如果添加的字段类型是varchar类...
Android程序员必掌握的sqlite数据库连表查询
原来用sqlite自建表,现在习惯用NaviCat了。 内连接(INNER JOIN):有两种,显式的和隐式的,返回连接表中符合连接条件和查询条件的数据行。(所谓的链接表就是数据库在做查询形成的中间表)。
android的sqlite获取当天数据的sql语句
Date KEY_END_AT = new Date(); String where = "strftime('%d.%m.%Y', date(?)) = strftime('%d.%m.%Y', 'now')"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String [] whereArgs = {sdf.format(
Android自带SQLite数据库查询语句query的用法
金证职考 2017-02-26 19:39 今天在调试APP的时候,用到了SQLite的query 查询语句,去年编码时间紧没认真琢磨query的用法,当时用到query时为了省事省时直接用下面的: Cursor cursor = db.query(tableName,null,null,null,null,null,null); 好在系统小功能简单数据量小,系统和数据占内存少没有明显的影响
Android SQLite分页查询的三种方法
闲话不多说,直入话题,SQLite分页查询有三种方法,它们都是基于SQLite SQL查询来的,首先我们看下SQLite分页查询的SQL语句,有助于我们理解: 1 2 3 4 5 6 #查询第一行起的5行数据,可以有两种语句: #第一种语句: select * from T_user limi
SQLite3关键字和语法总结
SQLite3: 不区分大小写,除了特殊命令(glob) 1.存储类: NULL, INTEGER, 带符号的整数,存储在1,2,3,4,6或8字节中 REAL, 浮点值,存储为8字节的IEEE浮点数字 TEXT, 文本字符串,使用数据库编码(UTF-8,UTF-16BE或UTF-16LE)存储 BLOB, blob数据,完全根据它的...
SQLite 中的递归
create table if not exists testTable( id INT PRIMARY KEY,[name] NVARCHAR(20), parentId INT ); INSERT INTO testTable(id,[name],parentId) VALUES(1,'xf1',0); INSERT INTO testTable(id,[name],parentId) VAL
数据库sqlite查询语句与升序或降序
SQLite Where 子句SQLite的 WHERE 子句用于指定从一个表或多个表中获取数据的条件。如果满足给定的条件,即为真(true)时,则从表中返回特定的值。您可以使用 WHERE 子句来过滤记录,只获取需要的记录。WHERE 子句不仅可用在 SELECT 语句中,它也可用在 UPDATE、DELETE 语句中,等等,这些我们将在随后的章节中学习到。语法SQLite 的带有 WHERE
SQLite语法学习
一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server ---创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_
sqlite的查询方式
两种查询的操作1.rawQuerySQLiteDatabase db = ....; Cursor cursor = db.rawQuery(“select * from person”, null); while (cursor.moveToNext()) { int personid = cursor.getInt(0); //获取第一列的值,第一列的索引从0开始 String name = c
Android中sqlite的基本增删查改用法
sqlite是Android中内置的轻型数据库,可以使用sql命令,是一种完善的,轻型的数据库。 在Android中,每个应用程序都可以有自己的数据库实例,默认情况下是只能被自己访问的。 数据库存放在Android设备的/data/data/<package_name>/databases文件夹下。可以使用内容提供器在应用程序间共享数据库信息。使用sqlite数据库可分为以下步骤:...
android sqlite 查询数据库的总条数
/** * 查询数据库中的总条数. * @return */ public long allCaseNum( ){ String sql = "select count(*) from info"; Cursor cursor = db.rawQuery(sql, null); cursor.moveToFirst(); long count = cursor.get
android sqlite query用法和参数含义
query(table,columns, selection, selectionArgs, groupBy, having, orderBy, limit) table:要查询的数据表 columns:需要查询的字段,也就是列名 selection : 查询的子条件,相当于select语句中的where部分,在条件子句允许使用占位符“?” selectionArges : 对应着selectio
Android中Sqlite的使用及性能优化
1.写在前面的话前面写过一篇关于Sqlite基本操作的文章,今天我们来学习Android中如何使用Sqlite以及性能优化。2.Android平台下数据库相关类SQLiteOpenHelper 抽象类:通过从此类继承实现用户类,来提供数据库打开、关闭等操作函数。 SQLiteDatabase 数据库访问类:执行对数据库的插入记录、查询记录等操作。 SQLiteCursor 查询结构操作类:用来访
sqlite3 通配符
2.SQL语句中表示单个字符和任意多个字符的通配符 % 包含零个或多个字符的任意字符串。 WHERE title LIKE '%computer%' 将查找在书名中任意位置包含单词 "computer" 的所有书名。 _(下划线) 任何单个字符。 WHERE au_fname LIKE '_ean' 将查找以 ean 结尾的所有 4 个字母的名字(Dean、Sean 等)。
android sqlite简单的sql语句介绍
看 android sqlite的sql语句   不能删除一个已经存在的字段,或者更改一个已经存在的字段的名称、数据类型、限定符等等。 sqlite的数据类型: 1.NULL:空值。 2.INTEGER:带符号的整型,具体取决有存入数字的范围大小。 3.REAL:浮点数字,存储为8-byte IEEE浮点数。 4.TEXT:字符串文本。 5.BLOB:二进制对象。
Android---Sqlite数据库---数据库查询两种方式(事务)
# 1 Android下数据库创建       mysql  sqlserver2005 oracle   sqlite : 轻量级,内置式      数据库一般用于存储,大量具有结构相同的数据。 创建数据库的流程:(SqliteOpenHelper:)      1.创建一个帮助类,继承SqliteOpenHelper           public class MyHelp
Android SQLite 使用 query 查询特定行数据
query()方法: query( table, columns, selection, selectionArgs, groupBy, having, orderBy, limit ); 参数含义: table:表名。 columns:要查询出来的列名。 selection:查询条件子句。 selectionArgs:对应于selection语句中占位符的值。 groupBy:分组。相当于s...
android sqlite中String日期查询转换操作
如果表结构是Date类型比较好办直接操作就可以了这个不多说; 如果表结构是String类型则需要在查询时把要查找的字段转换为Date来和其他的日期比较后作为查询条件 Cursor mCursor = db.query(true, DATABASE_SLEEP_TABLE, new String[] { KEY_SLEEP_ROWID, KEY_SLEE
Android Sqlite查询优化之一---运用索引
前言 最近笔者在做聊天功能模块,发现当本地聊天数据记录过大,以10万行数据进行了检索测试,发现时间太长了,要6s左右,但学着运用了下索引,时间大大提升,紧要几百毫秒就能完成. 以下内容,摘抄至网络 参考链接 http://www.cnblogs.com/IT-Monkey/p/3293131.html http://4925054.blog.51cto.com/4915054/1097107 htt
记录:Android SQLite的使用
记录一下Android 在使用 SQLite的时候,增、删、改、查对应的sql语句和Android自身封装还的函数。使用 SQLite时需要注意在 activity 销毁时候把SQLite close掉。数据库的 继承创建方式的区别。和创建是 getWritableDatabase( )与getReadableDatabase( )区别。查询返回 Cursor时候通过 while 或 for 进行数据的获取...
SQLite 查询返回 Cursor 的遍历
Cursor cur = getContentResolver().query(getIntent().getData(), PROJECTION, null, null, null);ArrayList> coll = new ArrayList>();Map item; cur.moveToFirst();  // 重中之重,千万不能忘了while(!cur.isAfterLast()){ 
sqlite 增删改查语法使用
DBFriendBean表 1.插入语句 insert into 表明(表中存在字段, 表中存在字段) values(表中存在字段对应的value,表中存在字段对应的value) 使用:   insert into DBFriendBean(insertUserId,userName) values(7,'葫芦娃') 插入结果: 2.  删除语句 de
SQLite FTS3/FTS4与一些使用心得
此文已由作者王攀授权网易云社区发布。欢迎访问网易云社区,了解更多网易技术产品运营经验。简介对于今天的移动、桌面客户端应用而言,离线全文检索的需求已经十分强烈,我们日常使用的邮件客户端、云音乐、云笔记、易信等就是离线全文检索的潜在用户。作为目前使用最为广泛的嵌入式数据库,SQLite3其实内置了全文检索的扩展模块——FTS。FTS分为FTS1、FTS2、FTS3、FTS4和FTS5几个版本,其中FT...
Android sqlite 采用execSQL和rawQuery方法完成数据的添删改查操作
  Android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、 查询(Retrieve)、更新(Update)和删除(Delete) 操作(这些操作简称为CRUD)。对SQLiteDatabase的学习,我们应该重点掌握execSQL()和rawQuery()方法。 execSQL()方法可以执行insert...
Android Sqlite 代码实现 多表联合查询
最近开发ServerMonitor解决的一个issue,关于数据库的的升级,需要log表内添加一个is_scuuess字段并且对原数据库中每条日志的该记录赋值,判断成功的逻辑是根据不同协议的返回状态码及请求时间进行判断,因为日志表内只有一个site_id字段,具体日志记录的协议类型字段在site表内,于是决定采用多表联合查询的方法,通过site_id,将log表的日志记录与site表内的port_
Android开发中SQLite Expert的操作技巧
最近学习SQLite Expert,了解过后,才觉得和MySql同工异曲,深度学习android开发,就必须了解Sqlite Expert,才能更上一层楼。在之前的一篇文章中我已经粗浅的介绍了SQLite的基本使用方法,这一骗我重点介绍一下SQlite的事务操作,适配器操作,分页操作等技巧.当然,先简单的温习一下Sqlite基本方法,http://blog.csdn.net/google_huchu
Android开发技术点7—— SQLite参数化查询小节
最近在做声纹相关的东西,在画页面时,因为设计不在家,所以就在即琢磨着,突发奇想的如果能模拟声纹波动的效果,岂不是很形象,所以在这边做了个模拟声纹波动的动画,但是首先声明,不是真的检测外部的声音而实时波动的,仅仅是个模拟声纹的动画效果,直接上代码: layout xml:<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:andr
android中的sqlite查询数据时去掉重复值
  1、方式一: /** * 参数一:是否去重 * 参数二:表名 * 参数三:columns 表示查询的字段,new String[]{MODEL}表示查询该表当中的模式(也表示查询的结果) * 参数思:selection表示查询的条件,PHONE_NUMBER+&quot; = ?&quot; 表示根据手机号去查询模式 ...
SQLite not in 无法查询数据
  SELECT * FROM QuestionInfo WHERE ID != (select QuestionID from Exam) SELECT * FROM QuestionInfo WHERE  ID not in  (select QuestionID from Exam) != 有数据 not in 没有数据 但各类文档都说 2者是等价...
Android sqlite3查询表中最后一条记录
sqlite3中貌似没有关于top函数的语法,所以如果需要查找表中最后一条记录可采用如下方法:   比如:查找表sensor中address为aaaa::11:22ff:fe33:4461的最后一条记录 [sql] view plaincopy select * from sensor where address = 'aaaa::1
android sqlite cursor 没有返回数据的情况
      今天在android下使用 sqlite数据库,查询数据的时候,遇到一个令人很久揪心的问题 ,就是数据库中的表有 数据,但是返回的cursor的getCount()返回的总是0,而且程序也不报异常,这让一顿找的头都大来,下面来说说我这儿出现这种情况的原因吧!出现这种情况的正常的,我就不说来,就是没数据记录呗!出现这种情况是因为我在其他的地把sqlite的dbhelper的资源给占用来了...
Android 代码实现查看SQLite数据库中的表
前言以前写PHP的时候,内置了print_r()和var_dump()两个函数用于打印输出任意类型的数据内部结构,现在做Android的开发,发现并没有这种类似的函数,对于数据库的查看很不方便,于是就写了一下查看数据库表的方法代码。代码实现import java.util.Arrays; import android.app.Activity; import android.database.Cur
用SQLite执行join操作时,筛选条件应当写在WHERE后面
我看了“图解SQL的JOIN”(http://coolshell.cn/articles/3463.html)后,决定用SQLite执行JOIN查询,然后发现数据的反应不正常,我抽象出来了一个例子如下: --创建表a: CREATE TABLE a( name TEXT NOT NULL PRIMARY KEY, level TEXT NOT NULL); --创建表b: CREATE TABL
sqlite数据库—select—order、where、like用法
1. 利用抓取到的数据SpiderResult.db3建立数据库 点击连接(connection),选中“现有数据库文件”,并找到数据库文件(若没有数据库的用户名密码可以忽略) 点击确定,即可在在sqlite中看到文件的全部信息2. 利用sql语句查询并筛选需要的数据   a) 使用说明:点击query表示查询,点击新建开始输入命令,点击运行开始运行b) select * from 表名 (查询全...
安卓SQLite 根据某一字段查询一条数据 根据某一字段排序 添加 修改 删除某一字段等于某某的那一条数据
查询:  SQLiteDatabase db= DBHelper.getDB(); //查询出来的数据顺序与SQLite里面的排列顺序相同         Cursor cursor=db.query("notice_info", null, null, null, null, null,null); //查询出来SQLite里面数据按照ID由大到小排列         Cursor
Android之sqlite常见用法以及取最新多少条数据(包括删除和不删除之外的数据)
用sqlite的感受:            sqlite和mysql很像,如果你对mysql有一定的经验,那么里面的sql写法也类似,比如常见的limit用法,mysql里面主要用limite分页,但是数据多了不建议,很影响效率。 sqlite常用用法函数总结如下: query:       //need try catch and db.clo
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java学习sqlite 学习java的正确顺序