`

SQL语句实现模糊查询

阅读更多

SQL语句实现模糊查询,有些东西老是既不清楚,现在做个笔记吧。
我们可以在where子句中使用
like来达到模糊查询的效果;在Where子句中,可以对datetime、char、varchar字段类型的列用Like子句配合通配符选取那些“很像...”的数据记录,以下是可使用的通配符:
%   零或者多个字符
_    单一任何字符(下划线)
\     特殊字符
[]     在某一范围内的字符,如[0-9]或者[aeth]  
[^]    不在某范围内的字符,如[^0-9]或者[^aeth]
后两种,需要
Oracle 10g以上使用支持like的正则regexp_like。
其中关于条件,Oralce中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,[^ ] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
比如SQL Server: SELECT * FROM [user] WHERE u_name LIKE '[^张李王]三'    将找出不姓“张”、“李”、“王”的“赵三”、“孙三”等;
Oracle 10g以上的用法为:

select*fromtablewhereregexp_like(name,'[张李王]三');

SELECT * FROM [user] WHERE u_name LIKE '老[^1-4]';
将排除“老1”到“老4”,寻找“老5”、“老6”、……
注:oracle like 不支持正则,你可以使用支持like的正则regexp_like

5,查询内容包含通配符时
由于通配符的缘故,导致我们查询特殊字符“%”、“_”、“[”的语句无法正常实现,而把特殊字符用“[ ]”括起便可正常查询。
据此我们写出以下函数:

function sqlencode(str)
str=replace(str,"[","[[]") '此句一定要在最前
str=replace(str,"_","[_]")
str=replace(str,"%","[%]")
sqlencode=str
end function

在查询前将待查字符串先经该函数处理即可。

参考资料:
http://hi.baidu.com/ppdd521/blog/item/487a170a17b25139b0351d09.html
http://www.cnblogs.com/ZHF/archive/2008/04/29/1175527.html

分享到:
评论

相关推荐

    Python使用sql语句对mysql数据库多条件模糊查询.pdf

    在这种情况下,我们需要使用多条件模糊查询来实现查询。 如何使用 Python 实现多条件模糊查询 使用 Python 实现多条件模糊查询需要几个步骤: 1. 首先,我们需要连接 MySQL 数据库。可以使用 Python 的 MySQL ...

    SQL语句实现按关健字模糊查询,并按匹配度排序

    SQL语句实现按关健字模糊查询,并按匹配度排序

    动态Sql语句实现条件查询与模糊查询

    这时,动态SQL语句就显得尤为重要。动态SQL允许我们在运行时根据特定条件构建和执行SQL查询,从而提高代码的灵活性和可维护性。本篇文章将深入探讨如何利用动态Sql来实现条件查询和模糊查询,以MyBatis框架为例进行...

    sql server数据库模糊查询语句

    SQL Server 模糊查询语句 SQL Server 模糊查询语句是指使用 LIKE 关键字和通配符来搜索符合指定模式的字符串。下面是 SQL Server 模糊查询语句的详细说明: 1. LIKE 关键字:LIKE 关键字用于搜索符合指定模式的...

    C#模糊查询之Sql语句

    在C#编程中,进行模糊查询通常涉及到与数据库交互,其中SQL语句是核心部分。...通过理解和运用这些技巧,你可以根据C#应用程序的需求构建出复杂而有效的模糊查询SQL语句,从而实现对数据库的强大检索功能。

    c#模糊查询之sql语句

    本主题聚焦于“C#模糊查询之SQL语句”,这是一个关于如何在C#程序中利用SQL进行模糊查询的关键知识点。模糊查询是数据库检索中的一个重要功能,允许用户输入部分关键词或通配符来搜索匹配的数据,这对于数据量庞大的...

    程序结合SQL语句结构,动态实现SQL多条件查询语句代码

    本文将深入探讨如何在程序中结合SQL语句结构,动态地实现SQL多条件查询,以提高开发效率并减少代码重复。我们将通过一个具体的示例,基于标签“SanYe”来阐述这一主题。 首先,理解SQL语句的基本结构是关键。一个...

    arcgis中的sql语句

    - **VBE环境下ADO方式执行SQL**:在Visual Basic for Applications (VBA)环境中,使用ActiveX Data Objects (ADO)技术可以实现SQL语句的自动化执行,适用于大规模数据处理和脚本编程。 综上所述,SQL在ArcGIS中的...

    SQL数据库模糊查询内容语句

    下面将详细介绍SQL中的模糊查询语句及其应用。 1. **LIKE关键字** LIKE是最常用的模糊查询关键字,它允许我们在WHERE子句中使用通配符来匹配字符串。例如,如果你想找出所有以“abc”开头的名字,你可以这样写: ...

    使用SQL语句实现通用分页查询

    使用SQL语句实现通用分页查询,支持模糊查询等。

    ssm框架实现模糊查询

    在模糊查询中,我们需要在MyBatis的Mapper XML文件或者Mapper接口中编写SQL语句,利用动态SQL来实现模糊匹配。 4. **动态SQL**:MyBatis的动态SQL功能允许我们在XML映射文件中编写条件语句,如`<if>`、`<choose>`、...

    java留言管理系统中模糊查询实例分享.doc

    总结来说,这个Java留言管理系统中的模糊查询实例展示了如何在MVC和DAO模式下,通过预编译的SQL语句实现模糊查询功能。开发者可以基于这个基础,根据实际需求调整查询条件和优化查询性能,例如添加索引来提高查询...

    sql 模糊查询

    SQL Server 提供了丰富的模糊查询功能,通过使用特定的通配符来实现这一目的。本文将详细介绍 SQL Server 中模糊查询的基本概念、常见通配符及其应用场景。 #### 二、通配符概述 SQL Server 支持多种通配符来进行...

    sql联合 模糊查询

    例如,要查找所有名字以"A"开头的员工记录,可以使用如下SQL语句: ```sql SELECT * FROM Employees WHERE Name LIKE 'A%'; ``` ### 结合使用 在给定的部分内容中,虽然代码片段并不完整,但可以看出其意图是通过...

    影响sql语句查询效率的因素

    本文将深入探讨影响SQL语句查询效率的关键因素,特别关注查询优化与LIKE语句的使用,帮助数据库管理员和开发人员识别并解决查询性能瓶颈。 ### 影响SQL查询效率的因素 #### 1. **处理NULL值** 当SQL查询涉及对...

    ASP下实现多条件模糊查询SQL语句.pdf

    首先,让我们了解一个基本的模糊查询SQL语句的结构。在SQL中,我们可以使用`LIKE`关键字配合通配符 `%` 或 `_` 来进行模糊匹配。`%` 代表零个或多个任意字符,`_` 代表单个任意字符。例如,如果我们要查询一个表中...

    SQL使用Like模糊查询

    在vC(可能指的是Visual C++或其他与C相关的环境)中,你可以通过执行SQL语句来实现这些模糊查询。这通常涉及到连接数据库、执行SQL命令并处理结果集的过程。 总结,SQL中的`LIKE`模糊查询是数据检索的重要工具,它...

    Access中的SQL语句.doc

    5. 模糊 Like 查询:使用 Like 语句可以查询满足指定模式的记录,例如 Select * from 职工 where 姓名 like '%王%'。 知识点:Like 语句可以使用通配符,例如 %、_、[] 等来指定模式。 6. 空值 NULL 查询:使用 IS...

    ASP下实现多条件模糊查询SQL语句.docx

    在标题提及的文档"ASP下实现多条件模糊查询SQL语句.docx"中,我们可以看到如何构建一个ASP脚本来实现这种功能。 首先,我们需要了解SQL语句的基础知识。SQL(Structured Query Language)是用于管理关系数据库的...

    sql模糊查询

    在实际开发中,直接将用户输入作为SQL语句的一部分存在安全隐患,特别是SQL注入攻击的风险。因此,建议使用参数化查询或预编译语句来提高安全性: ```csharp string sql = "SELECT * FROM a WHERE name LIKE @name...

Global site tag (gtag.js) - Google Analytics