sql字段中逗号分隔字符串的判断

例如,数据表t1中有一个字段PlayTheme存放的数值类似如下:

第一行:1,2,12

第二行:22,222,2222

第三行:1,2

第四行:2,12

第五行:2

如果你想取出PlayTheme字段包含‘2‘的行,在构造SQL(参数形式)时,要是写成下面这种形式的话,则会将五行一起取出来,显然达不到预期效果,第二行不是你想要的;

SqlStr.AppendFormat(@"WHERE … AND t1.PlayTheme LIKE ‘%{0}%‘", param);

但是,写成下面这样的话,就可以顺利的取出第一、三、四、五行。

SqlStr.AppendFormat(@"WHERE … AND (t1.PlayTheme LIKE ‘%,{0},%‘ OR t1.PlayTheme LIKE ‘{0},%‘

              OR t1.PlayTheme LIKE ‘%,{0}‘ OR t1.PlayTheme = ‘{0}‘)", param);

还有一种方法,写法简单些:

patindex(‘%,{0},%‘,‘,‘+t1.PlayTheme+‘,‘)>0

sql字段中逗号分隔字符串的判断

时间: 2024-08-06 16:05:19

sql字段中逗号分隔字符串的判断的相关文章

MySQL 整型字段中查询字符串,返回了所有为0的结果

在MySQL中,在整型字段中查询字符串,返回了所有为0的结果,应该返回null或空. 例如表结构信息: CREATE TABLE `t` (   `name` char(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL,   `id` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci 表中数据: mysql> select id from t

SQL Server中截取字符串常用函数

SQL Server 中截取字符串常用的函数: 1.LEFT ( character_expression , integer_expression ) 函数说明:LEFT ( '源字符串' , '要截取最左边的字符数' ) 返回从字符串左边开始指定个数的字符 select LEFT('SQL_Server_2008',4 ); 返回结果:SQL_ 2.RIGHT ( character_expression , integer_expression ) 函数说明:RIGHT ( '源字符串'

替换SQL字段中的换行符,回车符

有时候我们需要替换一些不需要的SQL字段, 下面就为您介绍替换SQL字段的几种情况,如果您对替换SQL字段方面感兴趣的话,不妨一看. 替换SQL字段中的换行符,回车符: 1> 回车符 SELECT *, REPLACE(detail, CHAR(13) , '<br>') AS 显示替换后的内容 FROM loginfo 2>换行符 SELECT *, REPLACE(detail, CHAR(10), '<br>') AS 显示替换后的内容 FROM loginfo

批量替换 MySQL 指定字段中的字符串

MySQL指定字段的特定字符串批量替换的具体语法是: UPDATE 表名 SET 字段名 = replace(字段名, 'http://www.jptcgyy.com', ''); 就是讲 该字段所有的 http://www.jptcgyy.com网址替换为空! 另外,针对ID也可以作个筛选替换,比如我们想把content_type__theme表中ID小于300的field_down_value字段中"86"替换成"80",那么语法就是: UPDATE conte

sql语句中截取字符串

今天在开发过程中因为要用到合并单元格,在程序里实现了以后,查出来的数据太长,都把格式撑大了,后来想想可以在sql语句查询的时候就截取,就去网上找了一下,挺好用,就转了过来: 合并单元格: /// <summary>    /// 合并GridView中某列相同信息的行(单元格)    /// </summary>    /// <param name="GridView1">GridView</param>    /// <para

switch 中可以使用字符串当判断条件

switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也是可以的.显然,long和String类型都不符合switch的语法规定(版本原因),并且不能被隐式转换成int类型,所以,它们不能作用于swtich语句中. Java7

orcal和sql server中的字符串查找函数

INSTR(C1,C2[,I[,J]]) [功能]在一个字符串中搜索指定的字符,返回发现指定的字符的位置; [说明]多字节符(汉字.全角符等),按1个字符计算 [参数] C1 被搜索的字符串 C2 希望搜索的字符串             I 搜索的开始位置,默认为1             J 第J次出现的位置,默认为1 [返回]数值 [示例] select instr('abcdefgc','c',1,2) from dual; 返回:8 CHARINDEX(C1,C2[,I]) [功能]在

SQL Server 中截取字符串常用的函数

1.LEFT ( character_expression , integer_expression ) 函数说明:LEFT ( '源字符串' , '要截取最左边的字符数'  ) 返回从字符串左边开始指定个数的字符 select LEFT('SQL_Server_2008',4 ); 返回结果:SQL_ 2.RIGHT ( character_expression , integer_expression ) 函数说明:RIGHT ( '源字符串' , '要截取最右边的字符数'  ) 返回字符串

SQl 字段中出现某一个词语的次数

select length(f3) - length(replace(f3, 'a','')) from t1 简单的,如果,要统计 good 出现的次数,改成 select (length(f3) - length(replace(f3, 'good ',''))) / length('good') from t1 ----------------------------------- SQL> select (length('XXgoodXXXXgoodxxx') - 2 length(re