`

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,[^ ] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。比如:
(1)SQL Server: SELECT * FROM [user] WHERE u_name LIKE '[^张李王]三'    将找出不姓“张”、“李”、“王”的“赵三”、“孙三”等;
(2)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

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

分享到:
评论

相关推荐

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

    Python 使用 SQL 语句对 MySQL 数据库多条件模糊查询 Python 是一种广泛使用的编程语言,而 MySQL 是一种常用的关系型数据库管理系统。在实际应用中,我们经常需要使用 Python 连接 MySQL 数据库,并执行多条件...

    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中的模糊查询语句及其应用。 1. **LIKE关键字** LIKE是最常用的模糊查询关键字,它允许我们在WHERE子句中使用通配符来匹配字符串。例如,如果你想找出所有以“abc”开头的名字,你可以这样写: ...

    arcgis中的sql语句

    ### ArcGIS中的SQL语句详解 #### 一、SQL在ArcGIS中的角色与应用 SQL,全称为Structured Query Language,即结构化查询语言,是专为数据库设计的一种标准语言,用于管理和操作数据库中的数据。在ArcGIS环境中,SQL...

    sql 模糊查询

    通过上述介绍,我们可以看到 SQL Server 中的模糊查询功能非常强大,它可以帮助我们灵活地处理各种复杂的查询需求。无论是简单的通配符使用,还是结合变量和控件的高级应用,都能极大地提高数据库查询的灵活性和效率...

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

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

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

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

    sql联合 模糊查询

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

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

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

    经典SQL语句大全(各种sql语句)

    SQL,全称Structured Query Language,是一种用于...这些是SQL的一些基本和高级用法,实际应用中,SQL语句会更复杂,可能涉及到子查询、联接、窗口函数、聚合函数等,理解和熟练掌握SQL是数据库管理和数据分析的基础。

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

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

    Access中的SQL语句.doc

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

    SQL查询字段被包含语句

    然而,当需要查询的关键词数量增加时,这种方式可能会导致查询语句变得冗长且效率低下,尤其是在使用ORM框架如MyBatis时,需要动态构建SQL语句。这时,我们可以利用`CHARINDEX`函数来优化查询。 `CHARINDEX`是SQL ...

    SQL使用Like模糊查询

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

    sql模糊查询

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

    SQL数据库 查询语句使用精华

    ### SQL数据库查询语句使用精华 #### 一、SQL查询语句概述与基本结构 SQL(Structured Query Language)是一种用于管理关系型数据库的标准语言。它主要用于执行查询、更新数据、创建新表、索引以及视图等操作。...

    SQL经典查询语句,sql查询语句,sql常用查询语句

    根据给定的信息,我们可以整理出一系列关于SQL的基本操作与高级查询技术的知识点: ### SQL基础知识 #### 创建数据库 - **语法**: `CREATE DATABASE database-name;` - **示例**: 创建一个名为`example_db`的...

    常用 SQL 语句大全+50个常用sql语句总结

    根据给定的文件信息,以下是对“常用 SQL 语句大全+50个常用sql语句总结”的详细解析,涵盖数据操作、数据定义、数据控制、事务控制以及程序化 SQL 等方面的重要知识点。 ### 数据操作 1. **SELECT**:用于从...

Global site tag (gtag.js) - Google Analytics