1. 程式人生 > >SQLite使用模糊查詢

SQLite使用模糊查詢

    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 模糊查詢不區分大小寫,以及區分大小寫語句

https://www.jianshu.com/p/ce3786435c46 SELECT * FROM %@ where sessionId = '%@' and servState!=2 and content like '%%%@%%' COLLATE NOCAS

SQLite模糊查詢

一、示例 說明:本文簡單示例了SQLite的模糊查詢 1.新建一個繼承自NSObject的模型 該類中的程式碼: 1 // 2 // YYPerson.h 3 // 03-模糊查詢 4 // 5 // Created by apple on 14-7-27. 6 // Copyri

IOS 資料庫篇5—SQLite模糊查詢

一、示例 說明:本文簡單示例了SQLite的模糊查詢 1.新建一個繼承自NSObject的模型 該類中的程式碼: // // YYPerson.h // 03-模糊查詢 // // Created by apple on 14-7-27

SQLite使用模糊查詢

    SQLite查詢大體可以分兩種,一是拼完整語句,二是用封裝好的方法用陣列傳參。     不說廢話,先上一段可以用的示例程式碼(陣列傳參): String[] selectioi

DevExpress 選擇框如何進行模糊查詢

sea 模糊 click 效果 bject private 再看 輸入文字 進行 dev中有很多的選擇框控件,但是沒有發現能夠實時模糊查詢的選擇框,lookupedit是在數據源不變情況下實現自動匹配,但很多時候數據量太大以至於我們沒法先綁定數據源。 這時我們需要一個能夠實

mybatis 模糊查詢

names sel concat earch result space ear ace res <mapper namespace="com.edc.dao.organize.OrganizeInfoMapper" > //對應相應的mapper.java文件

LINQ多條件OR模糊查詢

轉載 這樣的 .com 最終 () msdn soci table copy 需求是這樣的,有一張表tbl(Key[int],Value[string]),數據存儲如下: Key Value 1 -a-b- 2 -a- 3 -c-e- 4 -f-g-

如何結合IbatisNet的LIST遍歷實現模糊查詢

mov earch home 輔助 iba pda person list() rate 我仿照Java的Spring+Ibatis+Struct用Castle+IBatisNet+Asp.net的開發框架的DAO的基類:BaseSqlMapDao內定義了一個內部類來輔助模

實現模糊查詢

根據 def art 所有 cnblogs sse 建立 prop bsp QureyFind的find按鈕中when-button—pressed 進行字符串的拼接 在Controller塊中建立一個item,將其長度屬性改的大一些。、 QureyFind的fin

sqlite時間段查詢

語句 ble 數據庫 text table sel alt com per 同樣的SQL語句,查不出數據來 select * from table1 where t1>=‘2017-6-1‘ and t1<=‘2017-6-5‘ 改成 select * fr

SQL 模糊查詢

配對 address string 引號 add table cell code 過程 SQL 模糊查詢 在進行數據庫查詢時,有完整查詢和模糊查詢之分。一般模糊查詢語句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 條件 其中關於

MySQL指定模糊查詢範圍 或 獲取或者查詢數據庫字段的特定幾位

length oracle 一個 中一 字段 範圍 htm 截取 模糊查詢 SUBSTR 函數 正常的: select * from sky_user WHERE name LIKE "%name%" 現在我需要匹配name的前五位 select * from sk

10 行 Python 代碼實現模糊查詢/智能提示

import 3.5 django title gif function 項目 正則表達 裏的 10 行 Python 代碼實現模糊查詢/智能提示 1、導語: 模糊匹配可以算是現代編輯器(如 Eclipse 等各種 IDE)的一個必備特性了,它所做的就是根據用戶輸入

MySQL多項模糊查詢

logs alt 查找 cat com 關鍵字 導師 concat 復雜 最近有個需求,就是要根據搜索框裏面的關鍵字,找到符合條件的數據。 如果是單個條件的話,其實就是一個普通的select語句。 但是需求是這個關鍵字,要在id,desc,step等多個字段模糊查找。 然後

mysql全文索引之模糊查詢

http mysql5 var innodb 沒有 null into user 測試數據 舊版的MySQL的全文索引只能用在MyISAM表格的char、varchar和text的字段上。 不過新版的MySQL5.6.24上InnoDB引擎也加入了全文索引,所以具體信息大家

mysql中模糊查詢的四種用法介紹

包含 如果 正則 搜索 name 模糊查詢 長度 use mysql 下面介紹mysql中模糊查詢的四種用法: 1,%:表示任意0個或多個字符。可匹配任意類型和長度的字符,有些情況下若是中文,請使用兩個百分號(%%)表示。 比如 SELECT * FROM [user] W

mysql正則查詢 模糊查詢

lec clas 找不到 not code cap col and regexp -- ==============正則查詢================ /* SQL默認是忽略大小寫的 正則模式使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT

.net like模糊查詢參數化

string sha parameter 錯誤 and 程序 報錯 sel csharp List<SqlParameter> paras = new List<SqlParameter>();

mybatise 實現同一字段多模糊查詢

for ise concat cat type sep item 模糊查詢 foreach mybatise 同一字段多模糊查詢 <foreach collection="typeList" index="index" item="item" open="("

Easyui 實現智能模糊查詢(智能檢索)

easyui 實現智能模糊查詢js代碼: <input id="proBidSectionone" name="proBidSectionone" value="">重點://工作標段模糊查詢 $("#proBidSectionone").combobox({ valueFie