MySQL 数据库 like 语句通配符模糊查询小结
生活随笔
收集整理的這篇文章主要介紹了
MySQL 数据库 like 语句通配符模糊查询小结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
MySQL 報錯:Parameter index out of range (1 > number of parameters, which is 0)——MySQL 數據庫 like 語句通配符模糊查詢小結
文章目錄
- MySQL 報錯:Parameter index out of range (1 > number of parameters, which is 0)——MySQL 數據庫 like 語句通配符模糊查詢小結
- 前言
- 一、分析 SQL 語句
- 1.1、普通 SQL 語句的查詢分析
- 1.2、普通 SQL 查詢語句如何處理
- 1.3、使用 like 通配符模糊查詢語句分析
- 二、like 語句使用通配符模糊查詢剖析
- 2.1、like 語句的應用場景
- 2.2、模糊查詢剖析
- 2.3、正確語句
- 三、MyBatis like 模糊查詢及關鍵字區分
- 總結
前言
今天在使用 MySQL 語句執行增刪改查操作時,控制臺報出了以下錯誤:Parameter index out of range (1 > number of parameters, which is 0)。翻譯過來意思就是:查到結果數據為 1,真實值應為 0,參數越界,產生錯誤。如此也就明確了我們具體出錯的地方——參數,即對于通配符"?"的處理。本文分別對執行普通 SQL 語句以及使用 like 語句進行通配符模糊查詢遇到本錯誤進行了剖析,并給出解決方案。一、分析 SQL 語句
1.1、普通 SQL 語句的查詢分析
首先,我們來分析一下我之前使用的 SQL 語句:
String sql = "select count(*) from tab_route where cid = ?";說明:我們直接使用通配符"?"來代替參數,使用 Spring 框架的 JdbcTemplate 執行增刪改查操作。在這里是沒有任何問題的。
1.2、普通 SQL 查詢語句如何處理
如果在這里出錯,請按照如下方式進行解決:
1.3、使用 like 通配符模糊查詢語句分析
同理,我們依舊采用上面的方式進行模糊查詢操作,來看一下出錯的 SQL 語句:
String sql = "select count(*) from tab_route where rname like '%?%';執行結果報錯如下:
Parameter index out of range (1 > number of parameters, which is 0)結果分析:查到結果數據為 1,真實值應為 0,參數越界,產生錯誤。
我們明確如下語句是沒有任何問題的:
String sql = select * from tab_route where rname like '%張%';如此也就明確了我們具體出錯的地方——參數,即對于 like 語句中通配符"?"的處理。
二、like 語句使用通配符模糊查詢剖析
2.1、like 語句的應用場景
使用 like 通配符進行模糊查詢是我們在項目中常遇到的,比如在搜索框中對于數據的模糊查詢。
2.2、模糊查詢剖析
在 SQL 語句中無法直接對'%?%'進行解析,所以我們需要對連接的字符串進行處理,使用動態拼接concat()方法將'%?%'中的內容進行連接,然后再執行增刪改查操作。
concat(str1,str2,str3...)//會生成一個新的字符串2.3、正確語句
String sql = "select count(*) from tab_route where rname like concat('%',?,'%')";三、MyBatis like 模糊查詢及關鍵字區分
在 MyBatis 中使用 like 模糊查詢,應注意關鍵字為:#{str},查詢子句為:
select * from table where name like concat('%',#{name},'%');而如果添加排序字段,應注意關鍵字為:${str},查詢子句為:
select * from table where name like concat('%',#{name},'%') order by ${id};總結
本文分別對執行普通 SQL 語句以及使用 like 語句進行通配符模糊查詢遇到錯誤進行了剖析,并給出相應解決方案。同時補充了在 MyBatis 中對模糊查詢的操作以及不同關鍵字的區分。代碼之路漫漫,望諸君細致。我是白鹿,一個不懈奮斗的程序猿。望本文能對你有所裨益,歡迎大家的一鍵三連!若有其他問題、建議或者補充可以留言在文章下方,感謝大家的支持!
總結
以上是生活随笔為你收集整理的MySQL 数据库 like 语句通配符模糊查询小结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 十四、Python第十四课——文件和异常
- 下一篇: 价值投资到底是啥 绝对不是只买不卖