sql 字符串切割为条件进行查询

关键字 CHARINDEX     

CHARINDEX 可以返回某个字段在一串文字中出现的位置,跟String的indexOf用法类似,相同于%LIKE%。

用法例如:

表:

SQL语句:

select * from tt where

CHARINDEX( name ,(select xiaji from tt where name=‘aa‘) )>0

or name =‘aa‘

---------------------------------
select * from tt where

CHARINDEX( ‘,‘+ name + ‘,‘,(select ‘,‘+ xiaji +‘,‘ from tt where name=‘aa‘) )>0

or name =‘aa‘

----------------------------------

select * from tt where

CHARINDEX( ‘,‘+ name + ‘,‘,(select ‘,‘+ xiaji +‘,‘ from tt where name=‘aa‘) )>0

结果:

第一个结果:因为查询类似于%like% , 没有加逗号,所以结果中会有包含的字符的匹配项。

时间: 2024-10-10 22:37:21

sql 字符串切割为条件进行查询的相关文章

重构之路 组合查询之传递SQL字符串

既然是使用VB.NET语言对机房收费系统进行重构,那么无可避免的要去解决组合查询的问题,在VB版的实现中这是一个难点,不过大家还是依靠自己或者共同的智慧解决了这个看似复杂的问题. 如今编程的语言不同是一方面,更重要的是系统的结构不一样了,采用了三层架构去实现系统,这样一来就要考虑组合查询的在三层结构中的实现方法.当然,组合查询的核心办法是不变的,都是通过将查询的各个条件组装成SQL查询语句的where子句来实现的,问题就是这个where子句的组装在哪里完成? 如果放在U层完成,那么我们向下传递的

ADO多条件模糊查询防字符串攻击

多条件组合查询使用字符串拼接TSQL语句来实现 1 void Button1_Click(object sender, EventArgs e) 2 { 3 string text = "select *from car"; //最终TSQL语句 4 string endtext = ""; //组合查询末尾部分 5 int num = 0; //记录当前是第几条查询,为了区别前缀是Where还是and 6 bool ok = false; //判断是否有填写查询

MyBatis中动态SQL语句完成多条件查询

http://blog.csdn.net/yanggaosheng/article/details/46685565 MyBatis中动态SQL语句完成多条件查询 <select id="queryEmp"  resultType="cn.test.entity.Emp"> select * from emp where 1=1 <if test="deptNo!=null"> and deptno=#{deptNO} &

MySQL存储引擎 SQL数据导入/导出 操作表记录 查询及匹配条件

MySQL存储引擎的配置 SQL数据导入/导出 操作表记录 查询及匹配条件 1 MySQL存储引擎的配置1.1 问题 本案例要求MySQL数据存储引擎的使用,完成以下任务操作: 可用的存储引擎类型 查看默认存储类型 更改表的存储引擎 1.2 步骤 实现此案例需要按照如下步骤进行. 步骤一:查看存储引擎信息 登入MySQL服务器,查看当前支持哪些存储引擎. 使用mysql命令连接,以root用户登入: [[email protected] ~]# mysql -u root –p Enter pa

多条件情况查询,sql select case when when else

多条件情况查询 SELECT      Title,     'Price Range' =     CASE         WHEN price IS NULL THEN 'Unpriced'         WHEN price < 10 THEN 'Bargain'         WHEN price BETWEEN 10 and 20 THEN 'Average'         ELSE 'Gift to impress relatives'     END FROM titles

使用ArcGIS API for Silverlight 进行复合多条件空间查询

原文:使用ArcGIS API for Silverlight 进行复合多条件空间查询 这两天帮网上认识的一个兄弟做了一个查询的示例,多多少少总结一下,在此和大家分享. 为什么说是复合多条件呢?因为进行空间查询有时候我们查询的条件会很复杂,比如要求某一要素的某一属性大于多少,且小于多少,且又不等于多少等等.而在官网给出的例子中并没有关于复合查询的说明.不过查看API后,你会发现一句很重要的话: A where clause for the query. Any legal SQL where c

SQL Server 全文搜索 配置、查询初体验

一.使用SQL Server全文搜索配置 要使用SQL Server的全文搜索服务,需要进行如下配置. 1.开启全文搜索服务: 2.开启数据库的全文索引功能: --开启数据库的全文搜索功能 EXEC sp_fulltext_database 'enable'; 3.创建全文索引目录: --创建全文索引目录 CREATE FULLTEXT CATALOG IndexCatalog ON FILEGROUP [PRIMARY] IN PATH 'E:\SQLServerIndex' AS DEFAU

不确定条件的查询

以下是通过串字符串的方式实现查询:   @Test     public void query1() throws Exception{         QueryRunner run = new QueryRunner(DataSourceUtils.getDatasSource());        Contact c = new Contact();        //c.setId("C001");        c.setName("王");       

thinkphp-where-数组条件-普通查询

语法 Db::table(表名)->where(条件)->select(); 示例 $map['name'] = 'thinkphp'; $map['status'] = 1; // 把查询条件传入查询方法 Db::table('think_user')->where($map)->select(); 对应原始sql SELECT * FROM think_user WHERE `name`='thinkphp' AND status=1