一下的错误相信各位或多或少都犯过吧?
源:http://wenchenyangailiuyan.iteye.com/blog/967646
错误的
String sql="select s1.empno,s1.ename,s2.ename,s1.job,s1.hiredate,s1.sal,s1.comm,dname,loc,s1.deptno " +
"from emp s1,emp s2,dept " +
" where dept.deptno=s1.deptno and s2.empno=s1.mgr " +
" and s1.deptno=? and s1.ename like '%'+?+'%'";//联表查询,s1和s2是自查询
pst=conn.prepareStatement(sql);
pst.setInt(1,deptno);
pst.setString(2,name);//模糊查询 错误的写法,具体为什么我也不知道
rst=pst.executeQuery();
正确的
String sql="select s1.empno,s1.ename,s2.ename,s1.job,s1.hiredate,s1.sal,s1.comm,dname,loc,s1.deptno " +
"from emp s1,emp s2,dept " +
" where dept.deptno=s1.deptno and s2.empno=s1.mgr " +
" and s1.deptno=? and s1.ename like ?";//联表查询,s1和s2是自查询
pst=conn.prepareStatement(sql);
pst.setInt(1,deptno);
pst.setString(2,"%"+name+"%");//模糊查询 正确的写法
rst=pst.executeQuery();
SQL模糊查询
一般模糊语句如下:
Select 字段 FROM 表 Where 某字段 Like 条件
其中关于条件,SQL提供了四种匹配模式:
1,%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。
比如
Select * FROM [user] Where u_name LIKE '%三%'
将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。
另外,如果需要找出u_name中既有“三”又有“猫”的记录,请使用and条件
Select * FROM [user] Where u_name LIKE '%三%' AND u_name LIKE '%猫%'
若使用
Select * FROM [user] Where u_name LIKE '%三%猫%'
虽然能搜索出“三脚猫”,但不能搜索出符合条件的“张猫三”。
2,_: 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:
比如
Select * FROM [user] Where u_name LIKE '_三_'
只找出“唐三藏”这样u_name为三个字且中间一个字是“三”的;
再比如
Select * FROM [user] Where u_name LIKE '三__';
只找出“三脚猫”这样name为三个字且第一个字是“三”的;
3,[ ]:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
比如
Select * FROM [user] Where u_name LIKE '[张李王]三'
将找出“张三”、“李三”、“王三”(而不是“张李王三”);
如 [ ] 内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-e”
Select * FROM [user] Where u_name LIKE '老[1-9]'
将找出“老1”、“老2”、……、“老9”;
4,[^ ] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
比如
Select * FROM [user] Where u_name LIKE '[^张李王]三'
将找出不姓“张”、“李”、“王”的“赵三”、“孙三”等;
Select * FROM [user] Where u_name LIKE '老[^1-4]';
将排除“老1”到“老4”,寻找“老5”、“老6”、……
5,查询内容包含通配符时
由于通配符的缘故,导致我们查询特殊字符“%”、“_”、“[”的语句无法正常实现,而把特殊字符用“[ ]”括起便可正常查询。据此我们写出以下函数:
function sqlencode(str)
str=replace(str,"[","[[]") '此句一定要在最前
str=replace(str,"_","[_]")
str=replace(str,"%","[%]")
sqlencode=str
end function
在查询前将待查字符串先经该函数处理即可。
分享到:
相关推荐
然而,当涉及到模糊查询,尤其是使用LIKE '%xxx%'模式时,查询性能可能会显著下降。这是因为这种查询方式无法有效地利用索引来加速,导致数据库必须进行全表扫描。本文将深入探讨如何在PostgreSQL中对LIKE模糊查询...
### MySQL 时间模糊查询详解 #### 一、概述 在数据库操作中,经常需要对时间进行模糊查询以满足特定业务需求。MySQL提供了多种方法来进行时间模糊查询,这些方法各有特点,适用于不同的场景。本文将详细介绍几种...
在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 库来实现一个单词的模糊查询功能。MFC 是 Microsoft 提供的一个 C++ 类库,它为开发 Windows 应用程序提供了一种抽象和封装,使得开发者可以更加...
在IT领域,尤其是在数据库管理和软件开发中,模糊查询是一种常用的技术,它允许用户使用通配符来搜索不完全或不确定的信息。在这个“模糊查询的例子-最简单的VB查询入门”项目中,我们将深入探讨如何在Visual Basic ...
在ASP.NET MVC框架中,开发人员经常需要对数据库进行模糊查询来实现用户输入关键词的搜索功能。本节将详细介绍如何使用C#语言和Entity Framework在ASP.NET MVC中执行数据库的模糊查询。 首先,理解`MVC`(Model-...
"ComBoBoxEditTest实现模糊查询"这个主题聚焦于如何利用ComBoBoxEdit控件提供高效的搜索和筛选功能,使得用户能够方便地查找所需信息,提高操作效率。ComBoBoxEdit是一种常用的UI元素,它结合了下拉列表和文本输入框...
为了解决这个问题,我们可以引入“模糊查询”功能,即用户在输入框中输入关键词,系统会快速过滤出匹配的选项。这样极大地提高了用户体验和查找效率。 模糊查询的核心在于实现快速的搜索算法,一种常用的实现方式是...
本文将深入探讨“Baidu地图自定义模糊查询”这一主题,旨在帮助开发者更好地利用百度地图API实现地图上的高效信息检索。 首先,我们要理解什么是模糊查询。在传统的查询模式中,用户需要精确输入目标信息才能获取...
### JSP页面中模糊查询的关键知识点 #### 一、模糊查询的概念 模糊查询是指能够根据用户输入的内容动态从数据库中查询出匹配的数据,并将这些数据显示在列表框中的一种技术手段。这种技术在软件系统中非常常见,...
这时,模糊查询功能就能派上用场,允许用户输入部分关键字,系统会自动匹配并显示匹配项。下面我们将详细探讨如何实现C# WinForm Combobox控件的模糊查询功能。 首先,我们需要了解Combobox的基本结构和事件。...
从给定的文件信息来看,这段C++代码主要涉及了在图书查询系统中实现精确查询与模糊查询的功能。下面将详细解析其中的关键知识点。 ### 一、类与构造函数 `CWBLE`类的定义与构造函数:`CWBLE::CWBLE(CWnd* pParent ...
### C++ 模糊查询实现解析 #### 一、引言 在计算机科学与软件开发领域,模糊查询是一项重要的技术,被广泛应用于数据库检索、文本处理等场景之中。本篇文章将详细解读一个简单的C++程序,该程序实现了基本的模糊...
在某些情况下,我们可能希望实现ComboBox的模糊查询功能,这使得用户可以通过输入部分文本快速查找并选择所需的选项,提高了用户体验。本文将详细讲解如何在WinForm应用中实现ComboBox的模糊查询。 首先,我们需要...
在“bootstrap-select 下拉选择可进行模糊查询效果”这个主题中,我们将深入探讨如何使用这个组件实现高效的模糊查询功能。 模糊查询是用户在输入框中输入关键字时,下拉选项能够实时过滤并显示匹配结果的功能。...
在模糊查询的实现中,Service方法会接收前端传来的查询参数,通过这些参数动态构建模糊查询的条件,并调用Mapper进行数据查询。 6. **DAO层**:DAO(Data Access Object)层是数据访问层,通常由MyBatis的Mapper...
此外,用户可能还需要进行模糊查询来快速找到所需信息。在这个主题中,我们将探讨如何在C#的`DataGridView`中实现这两种功能,并与SQL数据库进行交互。 首先,让我们了解`DataGridView`的分页实现。在C#中,我们...
在前端开发中,"select框模糊查询方法"是一种常见的用户交互功能,允许用户在下拉选择框中输入关键字,快速找到并选择匹配项。这样的功能极大地提升了用户体验,尤其是在选项众多时,用户不再需要逐个滚动查找,而是...
在"ssh框架的模糊查询"这个主题中,我们将深入探讨如何在SSH框架下实现对数据的增删改查(CRUD)操作,以及模糊查询和分页显示功能。 首先,让我们来理解增删改查的基础。在SSH框架中,Struts2作为前端控制器处理...
在本篇中,我们将深入探讨如何在EasyUI的Datagrid中实现行过滤,特别是行模糊查询功能,以及其在数据库远程查询中的应用。 首先,`EasyUI Datagrid` 是一个强大的表格控件,它允许开发者轻松地展示和操作数据,支持...
这里我们讨论的是一个自定义的"带模糊查询的ComboBox",它由一个`TextBox`和一个`ListBox`组成,简化了实现模糊查询的过程。 首先,我们要理解这个自定义控件的基本结构。`TextBox`用于接收用户的输入,而`ListBox`...