sqllike参数化
A. mysql里 select * from table where title like ‘%a%’的参数化查询怎么写
在zendframework的model层你可以这么写
$sql = $this->select()->where("title like ? ", "%t%");
$rs = $this->fetchAll($sql);
要不你就直接写
$sql = "select * from table where title like '%t%' ";
$rs = mysql_fetch_object($sql);
你也可以尝试替换字符串
$sql = "select * from table where title like '?' "
$sql = str_replace('?', '%t%', $sql)
B. SQL中like里怎么使用输入参数
SQL like 需要配合通配符使用。
sql 中的通配符有。
以table_a中的 a 列,来举例
select * from table_a where a like "a%"
--检索a列 以 "a"开头的记录
select * from table_a where a like "%a"
--检索a列以 "a"结尾的记录
select * from table_a where a like "%a%"
--检索a列字符中包含“a”的记录
select * from table_a where a like "___"
--检索 a列 只有3个字符的记录
select * from table_a where a like "_a"
--检索a列 只有2个字符,且第二个字符为 “a”的记录
select * from table_a where a like '[abc]%'
--检索a列 以 "a","b","C" 开头的记录
select * from table_a where a like '[!abc]%'
--检索a列 不以 "a","b","C" 开头的记录
C. sql带参数like语句怎么写
参考下边写法
SELECT [ID], [TypeName] FROM [CompanyType] WHERE ([TypeName] like "% '@TypeName'%")
D. sql 语句like后面的参数是什么意思
like 后面的参数
%代表任意多个字符,
_代表任意的字符(一个);
例如:
select * from class student where name like '王%';
--就是从学生表中取出王姓的同学记录;
select * from student where name like'_佳欣';
--就是从学生表中取出叫佳欣的同学,不管他姓什么;
就你的这条SQL语句,含义同
select xmname,cardid,kkhcode,kkhname,ljxfe,jifen,dzdh,callnum,fkrq,zjm
from cgdd.dbo.lscard_wh
where kkhcode lik '%%' or kkhname like '%%'
or zjm like '%%'
是从数据库中检索出所有数据. . . . .
E. sql为什么要参数化,怎么参数化
一、最主要是: 数据库 机制问题,参数化 可以加快 执行效率,数据库有个缓存区,可以缓存 非参数部分的语句(或者说 下次执行不用数据库再次 解析语句),而不用参数,每次数据库 都需要解析 语句
二、次要是:防止,sql语句特殊字,注入:减少,字符转义等
三、清晰 便于理解
F. sql怎么使用参数化
采用sp_executesql 系统存储过程,执行sql语句,就能传入参数,
这就是sql参数化sql脚本参数化
你可以根据上面的例子,将sql脚本中定义参数,然后后面赋值参数变量,
在查询分析器中执行,你就可以知道sql参数化的具体实现和概念了。
如有疑问,请及时沟通!
请采纳!
G. 如何在LIKE语句中使用参数,以及动态执行SQL语句
拼SQL的方法不好,因为有安全的风险,容易造成SQL的语法错误甚至SQL注入攻击。安全的方法是将'%'加入到参数中:
--查询图书表中与查询关键字匹配的书籍信息
ALTER PROCEDURE [dbo].[SP_SelectByKeywordProc]
(
@Keyword varchar(40)
)
AS
BEGIN
DECLARE @SqlString nvarchar(400);
SET @SqlString = N'SELECT * FROM BOOK WHERE BOOK_NAME LIKE @Key_word ';
SET @KeyWord = N'%' + Keyword + '%';
EXEC SP_EXECUTESQL @SqlString, N'@Key_word varchar(40)', @Key_word= @KeyWord;
RETURN(0);
END
这里还要注意带参数的SP_EXECUTESQL系统存储过程的使用方法:
1、前两句为字符串,其中第一句为执行的SQL语句;第二句为语句中参数的定义,如果有多个变量则用逗号分隔;
2、后面的子句为赋值语句,可以有多个;
3、执行的动态SQL语句应当为ntext/nchar/nvarchar型,否则会报错:“Procere expects parameter '@statement' of type 'ntext/nchar/nvarchar'.”
MSDN上的例子:
DECLARE @IntVariable int;
DECLARE @SQLString nvarchar(500);
DECLARE @ParmDefinition nvarchar(500);
DECLARE @max_title varchar(30);
SET @IntVariable = 197;
SET @SQLString = N'SELECT @max_titleOUT = max(Title)
FROM AdventureWorks.HumanResources.Employee
WHERE ManagerID = @level';
SET @ParmDefinition = N'@level tinyint, @max_titleOUT varchar(30) OUTPUT';
EXECUTE sp_executesql @SQLString, @ParmDefinition, @level = @IntVariable, @max_titleOUT=@max_title OUTPUT;
H. C#中 SQL语句 带参数的like 查询怎么写
SQL模糊查询,使用like比较字,加上SQL里的通配符,请参考以下:
-- 1、LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。
-- 2、LIKE'%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。
-- 3、LIKE'%en%' 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。
-- 4、LIKE'_heryl' 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl)。
-- 5、LIKE'[CK]ars[eo]n' 将搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。
-- 6、LIKE'[M-Z]inger' 将搜索以字符串 inger 结尾、以从 M 到 Z 的任何单个字母开头的所有名称(如 Ringer)。
-- 7、LIKE'M[^c]%' 将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称(如MacFeather)。