在Where子句中,可以对datetime、char、varchar字段类型的列用Like子句配合通配符选取那些“很像...”的数据记录,以下是可使用的通配符:
% 零或者多个字符
_ 单一任何字符(下划线)
\ 特殊字符
[] 在某一范围内的字符,如[0-9]或者[aeth]
[^] 不在某范围内的字符,如[^0-9]或者[^aeth]
其中关于条件,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
|
相关推荐
在MySQL数据库中,LIKE查询是常用的模糊匹配方法,但当处理大数据量时,尤其是涉及到通配符(如%)的LIKE查询,其性能问题不容忽视。这类查询往往会导致全表扫描,消耗大量的CPU资源和时间,进而拖慢整体系统的响应...
根据提供的文件信息,本文将详细解析“mycd修补中文like查询漏洞”的相关知识点,包括问题背景、技术原理、解决方案及实现细节。 ### 一、问题背景 在数据库查询操作中,“LIKE”是一种常用的模糊匹配方式,它允许...
本文将深入探讨全文索引、联合索引、LIKE查询以及JSON查询这四种不同方法在实际应用中的速度比较,并通过实例进行详细解析。 首先,全文索引(Full-text Index)是MySQL提供的一种特殊类型的索引,专门用于提高全文...
然而,当涉及到模糊查询,尤其是使用LIKE '%xxx%'模式时,查询性能可能会显著下降。这是因为这种查询方式无法有效地利用索引来加速,导致数据库必须进行全表扫描。本文将深入探讨如何在PostgreSQL中对LIKE模糊查询...
使用Sql Server,like查询可以使用参数化查询,例如: ```csharp using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); SqlCommand comm = new SqlCommand(); comm.Connection = ...
通过like查询,开发者能够实现对数据库中的数据进行模糊匹配,以检索包含特定关键词的数据记录。本篇文章旨在通过具体实例,介绍ThinkPHP中实现like模糊查询的两种主要方式:字符串形式和数组形式。 一、使用字符串...
LIKE 查询用于进行文本匹配,可以匹配包含特定字符的数据。例如,如果想查找用户名中包含"A"的所有用户,可以使用以下语句: ```php $data_like['username'] = array('like', '%A%'); ``` `%` 符号是通配符,`%...
MySQL中的LIKE操作符是用于模糊查询的关键字,它在处理字符串数据时非常有用。LIKE语法简单,通过结合通配符“%”和“_”来实现不同类型的模糊匹配。 1. **“%”通配符**: - `%` 在模式中代表任意数量的字符,...
在早期的一些SQLite版本中,由于编码或字符集处理的问题,可能会遇到在执行LIKE查询时,中文字符无法正确匹配的情况。LIKE操作符在SQL中用于执行模糊匹配,通常配合通配符'%', 允许用户查找与模式部分匹配的数据。...
在SQL(Structured Query Language)中,`LIKE` 模糊查询是一种非常实用的功能,它允许用户根据特定的模式匹配数据库中的数据。这个功能在数据检索、分析和处理时尤其有用,尤其是在我们不确定确切的搜索词或者需要...
这里我们将详细探讨如何在Oracle中实现`LIKE`多个值的查询,并优化查询性能。 首先,传统的`LIKE`查询方式是直接在`WHERE`子句中使用`LIKE`,例如: ```sql SELECT org_caller_num, org_callee_num, call_seconds,...
在处理大量数据时,低效的LIKE查询可能导致显著的性能下降。以下是一些关于如何优化MySQL LIKE模糊查询的策略: 1. **索引失效**: - 当使用`LIKE %keyword%`时,即查询模式中前后都有通配符,MySQL无法使用索引,...
#### 一、iBATIS中的LIKE查询技巧 iBATIS是一款优秀的Java持久层框架,它简化了基于SQL的程序编写,避免了程序员手动处理结果集和手工编写SQL语句。在进行数据库查询时,LIKE查询是一种常见的需求,特别是在搜索...
Convert转成String再使用LIKE查询 这种方法适用于需要将日期或时间转换为字符串格式后再进行模糊匹配的情况。例如: ```sql SELECT * FROM table1 WHERE CONVERT(VARCHAR, date, 120) LIKE '2006-04-01%'; ``` ...
摘要:Delphi源码,数据库应用,Like查询,模糊查询 Delphi高级Like语句数据库查询实例,实现基于Like的模糊查询实例,以查询商品信息为例,可查询第一个是A-Z之间的字母第二个位是0的、可查询字母开头以3结尾的商品...
LIKE 查询是指从数据库表中检索出某个列中包含某个字符串的记录。例如,在 emp 表中查询出姓名的第二个字母为 A 的记录。可以使用以下 SQL 语句: ```sql select * from emp where ename like '_A%'; ``` 这条语句...
可以使用 `Restrictions.like()` 方法添加 LIKE 查询条件,例如: `Criterion fullName = Restrictions.like("fullName", findKey);` `Criterion shortName = Restrictions.like("shortName", findKey);` `...
C# List多条件查询聚合查询,List条件查询Where与GroupBy聚合查询