SQLite查询大体可以分两种,一是拼完整语句,二是用封装好的方法用数组传参。
    不说废话,先上一段可以用的示例代码(数组传参):
        String[] selectioinArgs = {"%"+keyword+"%"};//注意:这里没有单引号String sql = "select "+ TABLE_COLUMN_NAME +"," +TABLE_COLUMN_SYSTEM_NAME+ " from " + TABLE_NAME+ " where " + TABLE_COLUMN_NAME + " like ? ";Cursor cursor = db.rawQuery(sql,selectioinArgs);

或者(直接拼完整sql)

        String sql2 = "select "+ TABLE_COLUMN_NAME +"," +TABLE_COLUMN_SYSTEM_NAME+ " from " + TABLE_NAME+ " where " + TABLE_COLUMN_NAME + " like '%"+keyword+"%'";//注意:这里有单引号Cursor cursor2 = db.rawQuery(sql2,null);

第二种因为是直接完整的SQL语句,没太多问题,第一种这里的可能发生的错误有几个:

    1. String[]  selectionArgs = {"'%"+keyword+"%'"}      这个数组比上面的正确的多了一堆单引号"'" ,导致的结果是单引号被加入匹配串,实际匹配串成了" like ''%keyword%''",意思为必须包含两边是单引号和中间任意关键字。问题出在多了一对单引号。
    2.sql语句后半段:" where " + TABLE_COLUMN_NAME + " like '?' "
    这种情况下会报一个异常,大致意思是说“你没说需要参数,可是你又硬给我一个参数,劳资不干了!”。问题就出在问号不应该用单引号包裹。
    原因:
    我们使用SQLite查询的时候用的"where xxx = ?"来指定条件,我们知道如果"?部分"是String 类型时,是需要单引号引起来的。
        经过几个错误的语句可以判断出,"?" 的前后位置必须是空格或者逗号,否则会把?和连着的字符整体当做一个String对象,而不是后补参数空位 。

SQLite使用模糊查询相关推荐

  1. sqlite使用模糊查询数据库数据的三种方式

    android应用开发中常常需要记录一下数据,而在查询的时候如何实现模糊查询呢?很少有文章来做这样的介绍,所以这里简单的介绍下三种sqlite的模糊查询方式,直接上代码把: package com.e ...

  2. IOS开发数据库篇—SQLite模糊查询

    IOS开发数据库篇-SQLite模糊查询 一.示例 说明:本文简单示例了SQLite的模糊查询 1.新建一个继承自NSObject的模型 该类中的代码: 1 // 2 // YYPerson.h 3 ...

  3. android sqlite使用之模糊查询数据库数据的三种方式

    android sqlite使用之模糊查询数据库数据的三种方式 android应用开发中常常需要记录一下数据,而在查询的时候如何实现模糊查询呢?很少有文章来做这样的介绍,所以这里简单的介绍下三种sql ...

  4. android sqlite模糊查询,SQLite 模糊查询

    (1)使用db.query方法查询 // select * from users where name like %searcherFilter% ; public List> queryByL ...

  5. ios mysql 修改数据,iOS数据库FMDB--增删改查(模糊查询)实写记录

    在iOS中,主要有5种数据缓存的策略: 1.plist 2.归档 3.偏好设置 4.沙盒文件 5."SQLite数据库" 其中,"SQLite数据库" 是最常用 ...

  6. python数据库模糊查询_原创:Python编写通讯录,支持模糊查询,利用数据库存储...

    1.要求 数据库存储通讯录,要求按姓名/电话号码查询,查询条件只有一个输入入口,自动识别输入的是姓名还是号码,允许模糊查询. 2.实现功能 可通过输入指令进行操作. (1)首先输入"add& ...

  7. pythonsqlite3模糊_Python编写通讯录通过数据库存储实现模糊查询功能

    1.要求 数据库存储通讯录,要求按姓名/电话号码查询,查询条件只有一个输入入口,自动识别输入的是姓名还是号码,允许模糊查询. 2.实现功能 可通过输入指令进行操作. (1)首先输入"add& ...

  8. ios 查询mysql数据库操作系统_iOS数据库FMDB--增删改查(模糊查询)详细介绍

    简介: 很早就想整理一下数据库的使用了,刚好最近接触较多,加之可以安排出空余的时间,所以瓜子我贡献出自己喝咖啡的时间整理一下FMDB的使用,以下是对FMDB的介绍以及基本使用 --- insert.d ...

  9. Sql like模糊查询 区分大小写

    Sql模糊查询,Like默认是不区分大小写的 使用Like时,怎么支持大小写呢? upper.lower,只能模糊所有的内容,不能区分内容中的大小写. sqlite数据库对text字段默认是大小写敏感 ...

最新文章

  1. /lib64/libc.so.6: version `GLIBC_2.14' not found问题
  2. 区块链预言机(3)关键点说明
  3. 电影推荐之《哈利·波特与火焰杯》 隐私策略(Privacy policy)
  4. mjpeg解码到rgb
  5. Java并发之ThreadLocal
  6. 百度将砸钱100多亿元建云计算中心(2012-09-03)
  7. 蒙古文输入法linux版,蒙古文输入法下载 德力海蒙古文输入法 V2.1.3 官方安装版(附使用手册) 下载-脚本之家...
  8. 华芯飞CC1600到底由谁设计?
  9. mysql存储过程 根据查询的结果集向表中插入数据
  10. 基于中国剩余定理的秘密共享方案(miracl)
  11. 推荐系统[八]:推荐系统常遇到问题和解决方案[物品冷启动问题、多目标平衡问题、数据实时性问题等]
  12. java 分层处理解耦_后端分层架构如何解耦?
  13. A example of Maximum A Posteriori (MAP) estimation
  14. Nginx做缓存服务器
  15. java 指定垃g1圾收集_【译】Java 14 Hotspot 虚拟机垃圾回收调优指南
  16. 数学建模Word排版——样式
  17. K-mean 算法代码演示
  18. 改编的一个滑动门代码
  19. 计算机仿真气垫上的直线运动验报告,在气垫导轨上测加速度的实验报告.doc
  20. catia钣金根据线段折弯_CATIA钣金模块进阶教程.ppt

热门文章

  1. 实战三:根据父母的身高预测儿子的身高
  2. htts 及 tomcat ssl配置
  3. 前端性能测试(一):CPU
  4. 人工智能、机器学习与深度学习的区别与联系
  5. linux 二次封装 释放,Linux必学的60个命令(二)
  6. 史上最简单MySQL教程详解(进阶篇)之视图
  7. vue中的for循环如何循环到到一定次数换行(歪门邪道)
  8. 利用Matlab进行灰色预测,利用matlab进行灰色预测.pdf
  9. 单片机实例3——多路开关状态指示(硬件电路图+汇编程序+C语言程序)
  10. SQL50题(MySQL)