一般我们模糊查询是用like
select * from 表 where 列 like '';
但是在数据量很大的时候用like查询会显得很慢。

在sqlserver中

使用charindex函数会不会使查询变得快些呢?我们来试一试
select * from 表 where CHARINDEX('',列)>0;

oracle中

select * from 表 where INSTR(列,'')>0;
下面我们在sqlserver中实验一下:

1、写个存储过程插入100万条相同数据:

CREATE PROCEDURE insert10000Demo1
@a int,
@b int
AS
set @a = 1;
set @b = 0;
while @a<=1000000
BEGIN
set @b += @a;
set @a +=1;
insert into txtDemo(id,txt) values(@a,'内容随意');
END

2、执行以下存储过程:

exec insert10000Demo1 1,0;

3、查询10万条数据对比

(1)like:

select top 100000 * from txtDemo where txt like '%内容随意%';

所需时间8秒

(2)CHARINDEX:

select top 100000 * from txtDemo where CHARINDEX('内容随意',txt)>0;

所需时间5秒

4、查询20万条数据对比

(1)like:

select top 200000 * from txtDemo where txt like '%内容随意%';

所需时间12秒

(2)CHARINDEX:

select top 200000 * from txtDemo where CHARINDEX('内容随意',txt)>0;

所需时间12秒

5、查询30万条数据对比

(1)like:

select top 300000 * from txtDemo where txt like '%内容随意%';

所需时间18秒

(2)CHARINDEX:

select top 300000 * from txtDemo where CHARINDEX('内容随意',txt)>0;

所需时间17秒

爱用哪个用哪个/笑脸。可能是在某个数据量的时候是相等的。在这个数据之前是like慢些,在这个数据之后是like快些。

测评结束。

注意:在大批量插数据时要把使索引失效,插入完后再使索引有效。

一般我们模糊查询是用like  select * from 表 where 列 like '';  但是在数据量很大的时候用like查询会显得很慢。在sqlserver中使用charindex函数会不会使查询变得快些呢?我们来试一试  select * from 表 where CHARINDEX('',列)&amp;gt;0;oracle中select * from 表 where...
文章目录第六十四章 SQL 函数 INSTR 大纲参数描述 INSTR , CHAR INDEX , POSITION和$FIND示例 第六十四章 SQL 函数 INSTR 返回子字符串在字符串 的位置的字符串 函数 ,具有可选的搜索起始点和出现次数。 INSTR (string,substring[,start[,occurrence]]) string - 要在其 搜索子字符串的字符串表达式。 它可以是列的名称、字符串字面值或另一个标量 函数 的结果,其 基础数据类型可以表示为任何字符类型(如 CHAR 或VARC
将分隔的字符串插入临时表#tbTemp ,通过t1.PROCESS_CD IN ( SELECT * from #tbTemp )获取数据 create table #tbTemp strTemp VAR CHAR (max) IF( @PROCESS_CD IS NOT NULL OR
在c# 可以用字符串的 Index Of方法来判断一个字符串 是否含有指定的字符。而在 SQL SERVER 也就相关的 函数 来实现 Index Of的功能。 Char Index InStr ,Pat Index 三个 函数 就是和 Index Of类似,最后介绍一个替换插入字符的 函数 Stuff。 下面就来说说 SQL Char Index 函数 InStr 函数 、Pat Index 函数 、Stuff 函数 区别与作用。 一、 CHAR IN...
3。测试字段:ntext 类型,最大数据长度12000 二、测试语句: 1。select * from ProductTemp where ProductDesc like ‘%192.168.70.236%’ 2。select * from ProductTemp where char index (‘192.168.70.236’,ProductDesc)>0 3。select * f
分享个 sqlserver sql 给大家,能用with as的递归实现 oracle instr 函数 ,并且能将分隔符的字符串解析,例如: 字符串为:'O3O,30,4834,348934,AA,09WOFJOWE,FW' 解析完成: 1)实现 oracle instr 函数 sql 如下: WITH CTE1 AS ( SELECT '1' AS ID , 'O3O...
SQL Server CHAR INDEX 函数 是用来查找一个字符串 某个子字符串的位置的 函数 。它的语法如下: CHAR INDEX ( expressionToFind , expressionToSearch [ , start_location ] ) 其 ,expressionToFind是要查找的子字符串,expressionToSearch是要在其 查找的字符串,start_location是可选的,表示从哪个位置开始查找。如果找到了子字符串,则返回它在字符串 的位置,否则返回。 ### 回答2: SQL Server CHAR INDEX 函数 是字符串 函数 之一。该 函数 返回字符串 要查找的字符或子字符串的位置,如果未找到,则返回零。 CHAR INDEX 函数 的语法如下: CHAR INDEX (要查找的字符串, 被查找的字符串, 开始查找的位置) 其 ,第一个参数是要查找的字符串,第二个参数是被查找的字符串,第三个参数是可选的,表示从被查找的字符串的哪个位置开始查找。 CHAR INDEX 函数 返回的是要查找的字符串在被查找的字符串 的起始位置。如果要查找的字符串在被查找的字符串 出现多次,则返回第一次出现的位置。 以下是使用 CHAR INDEX 函数 的示例: -- 查找字符串 的子字符串 SELECT CHAR INDEX ('world', 'hello world') -- 返回7 -- 查找子字符串在字符串 的位置 SELECT CHAR INDEX ('o', 'hello world', 5) -- 返回7 -- 如果未找到,则返回0 SELECT CHAR INDEX ('abc', 'hello world') -- 返回0 CHAR INDEX 函数 可以被用于许多情况。例如,可以在数据库 使用它来查找表格 的某些特定字符或子字符串。此外,由于该 函数 的功能较强大,还可以在编写存储过程 使用它来检查特定字符串的存在并执行相应的操作。 总之, CHAR INDEX 函数 SQL Server 的一个非常有用的 函数 ,可以帮助开发人员在大多数情况下轻松地查找和处理特定字符串。 ### 回答3: SQL Server Char Index 函数 用于返回指定字符串在源字符串 的位置。如果查找到指定字符串,则返回该字符串的第一个字符在源字符串 的位置。如果未找到,则返回0。以下是 Char Index 函数 的语法: CHAR INDEX (searchString, sourceString, startPosition) 参数说明: - searchString:要查找的字符串。 - sourceString:要查找的源字符串。 - startPosition:指定从源字符串的哪个位置开始查找。可选参数,默认值为1。 SELECT CHAR INDEX ('o', 'hello world') -- 返回值为 5 以上示例 Char Index 从“hello world” 查找第一个出现“o”的位置,返回5。 使用 Char Index 函数 时,需要注意以下几点: - Char Index 区分大小写。如果要忽略大小写,可以使用Upper或Lower 函数 将源字符串和待查找字符串转换为大写或小写。 - 查找到的位置是指从左到右的第几个字符。如果要从右到左进行查找,可以使用PAT INDEX 函数 。 - 如果使用 Char Index 函数 查找多个字符串的位置,需要多次调用该 函数 。 总的来说, Char Index 函数 SQL Server 一个非常有用的字符串 函数 ,可以方便地进行字符串位置的查找和处理。在实际应用 ,可以使用它来解析数据、替换字符串等。 log4net:ERROR Exception while reading ConfigurationSettings. Check your .config file is well formed win10通过OneDrive实现办公室的电脑和家里电脑重要数据同步 oracle 遇到中is null与 =‘‘的问题