<!-- oracle -->
<select id="searchUserBySearchName" parameterType="java.lang.String" resultType="com.urm.entity.User">select * from t_user where user_name like CONCAT('%',#{search_name},'%')
</select>
<!-- 或者 -->
<select id="searchUserBySearchName" parameterType="java.lang.String" resultType="com.urm.entity.User">select * from t_user where user_name like '%'||#{search_name}||'%'
</select><!-- m...
如图所示,是一个封装的PDO操作,发送sql,取回数据!
图片描述
一个sql语句用pdo的bindColumn()来实现的like查询
选项参数
错误情况
间接性报错,运气好了能正常运行,连接的是阿里云上自己安装的mysql,个人的博客运行正常,不知道为嘛自己写的pdo方式的查询就报错了
网上已经搜了很多遍了1.不会是timeout已经设置了2.max_allowed_packet也设置成32M了
<!-- oracle -->
<select id="searchUserBySearchName" parameterType="java.lang.String" resultType="com.urm.entity.User">select * from t_user where user_name like CONCAT(%,#{search_name},%)
</select>
<!-- 或者 -->
<select id="searchUserBySearchName" parameterType="java.lang.String" resultType="com.urm.entity.User">select * from t_user where user_name like %||#{search_name}||%
</select><!-- mysql -->...
今天写个动态脚本,需要把数据库里面包含“USER_"的表删除掉,突然想不起来如何搜索通配字符了,赶紧查查MSDN,整理了下模糊查询的知识点,留着以后查阅用。
LIKE模糊查询的通配符通配符说明示例%包含零个或多个字符的任意字符串。WHERE title LIKE ‘%computer%‘ 将查找在书名中任意位置包含单词 "computer" 的所有书名。_(下划线)任何单个字符。WHERE au_fname LIKE ‘_ean‘ 将查找以 ean结尾的所有 4 个字母的名字(Dean、...
string userIds = "1,2,3,4";
using (SqlConnection conn = new SqlConnection(connectionString))
{conn.Open();SqlCommand comm = new SqlCommand();comm.Connection = conn;comm.CommandText = string.Format("select * from Users(nolock) where UserID in({0})", userIds);comm.ExecuteNonQuery();
}
需要参数化查询时进行的尝试,很显然如下这样执行SQL会报错错误
using (SqlConnection conn = new SqlConnection(connection...
背景
在使用Oracle或者其它数据库时,使用like 关键字进行模糊查询是大家经常使用的功能,在纯中文环境中使用非常好用,还有一些通配符可以使用,但是在纯英文环境中,会出现大小需要精确匹配的问题,主要原因还是字符串的问题FL like ‘%{0}%‘ and这里like后是一个字符串,这样必然会有大小敏感的问题。比如如下的大小混编的字段
解决方案
方案1
使用Oracle系统函数对需要查询的列字符串进行小写转换(大写也行,变量相关部分都是...
%:匹配零个及多个任意字符; _:与任意单字符匹配; []:匹配一个范围; [^]:排除一个范围 ;-:连字符
Symbol Meaning like ‘5[%]‘ 5% like ‘[_]n‘ _n like ‘[a-cdf]‘ a, b, c, d, or f like ‘[-acdf]‘ -, a, c, d, or f like ‘[[]‘ [ like ‘]‘ ] like ‘abc[_]d%‘ abc_d and abc_de like ‘abc[def]‘ abcd, abce, and abcf like ‘[^1-9]‘ 0 like ‘[^1-9b-z]‘ 0, a
对于字符串中出现的特殊字符:‘%‘,‘[‘...
身为一名小小的程序猿,在日常开发中不可以避免的要和where in和like打交道,在大多数情况下我们传的参数不多简单做下单引号、敏感字符转义之后就直接拼进了SQL,执行查询,搞定。若有一天你不可避免的需要提高SQL的查询性能,需要一次性where in 几百、上千、甚至上万条数据时,参数化查询将是必然进行的选择。然而如何实现where in和like的参数化查询,是个让不少人头疼的问题。
where in 的参数化查询实现
首先说一下我们常用的...
string userIds = "1,2,3,4";
using (SqlConnection conn = new SqlConnection(connectionString))
{conn.Open();SqlCommand comm = new SqlCommand();comm.Connection = conn;comm.CommandText = string.Format("select * from Users(nolock) where UserID in({0})", userIds);comm.ExecuteNonQuery();
}
需要参数化查询时进行的尝试,很显然如下这样执行SQL会报错错误
using (SqlConnection conn = new SqlConnection(connection...
2000万行的数据表,首先对Address字段做‘%xxx%‘模糊查询
这是估计的查询计划这是估计的实际查询结果,用了37秒才查询完成
还是之前的数据,但是这一次使用‘xxx%‘来做查询,现在还没有做索引
查询速度为10秒,依然是做了全表扫描
接下来的这个不是模糊查询,直接的=,查询多了一个步骤“并行度”
三秒钟完成查询,也是很慢的,应该都是走了全表扫描
现在为Address字段建立一个普通索引
建好普通索引之...
原文:https://blog.csdn.net/miao0967020148/article/details/71108056
MS-SQL Server
select * from Book where BookName like‘%C语言%‘
在SQL2000下能正常找到,在2005下不能,因为语句中的中文字体, 但是使用
select * from Book where BookName like N‘%C语言%‘ ,这样就完合正常了,
Like 后的N是表示什么意思呢
unicode字符
N转换字符串为nchar,nvarchar
当把客户端发送的非 Unicode 数据以 Unicode 存储在服务器中时,...
http://www.dqhxz.com/Post_572.html 如 SELECT @EmailTitle = REPLACE(@EmailTitle, [ , [[] ) --1 SELECT @EmailTitle = REPLACE(@EmailTitle, % , [%] ) --2 SELECT @EmailTitle = REPLACE(@EmailTitle, _ , [_] ) --3 SELECT @EmailTitle = http://www.dqhxz.com/Post_572.html 如 SELECT @EmailTitle = REPLACE(@EmailTitle,[,[[])--1 SELECT @EmailTitle = REPLACE(@EmailTitle,%,[%])--2 SELECT @EmailTitle ...
string sql = Select Count(ID) As rcount From tbArticle WHERE classID IN( + ids + ) AND Title LIKE @Title ; 参数: SQLiteParameter[] sps = new SQLiteParameter[1]; sps[0] = SQLite.CreateParameter(@Title, DbType.String, % + title + %, 50, Parstring sql = “Select Count(ID) As rcount From tbArticle WHERE classID IN(” + ids + “) AND Title LIKE @Title “;
参数:SQLiteParameter[] sps = new SQLitePara...
若有一天你不可避免的需要提高SQL的查询性能,需要一次性where in 几百、上千、甚至上万条数据时,参数化查询将是必然进行的选择身为一名小小的程序猿,在日常开发中不可以避免的要和where in和like打交道,在大多数情况下我们传的参数不多简单做下单引号、敏感字符转义之后就直接拼进了SQL,执行查询,搞定。若有一天你不可避免的需要提高SQL的查询性能,需要一次性where in 几百、上千、甚至上万条数据时,参数化查询将是必然进行...
在上一篇Sql Server参数化查询之where in和like实现详解中介绍了在Sql Server使用参数化查询where in的几种实现方案,遗漏了xml和表值参数,这里做一个补充方案5 使用xml参数 对sql server xml类型参数不熟悉的童鞋需要先了解下XQuery概念,这里简单提下XQuery 是用来从 XML 文档查找和提取元素及属性的语言,简单说就是用于查询xml的语言说到这就会牵着到XPath,其实XPath是XQuery的一个子集,XQuery 1.0 和 XPath 2.0 共享相同的...