电脑安全

您当前的位置:主页 > 电脑安全 >

sql like 与in用法-网络编程

来源:[db:来源]标题:   通配符    编辑:电脑技术全能网 时间:2019-09-21 06:24

原标题:sql like 与in用法-网络编程
   IN 操纵符IN 操纵符同意咱们在 WHERE 子句中划定多个值。SQL IN 语法SELECT column_name(s)FROM table_nameWHERE column_name IN (value1,value2,...)原始的表 (在实例中应用:)Persons 表:Id LastName FirstName Address City 1 Adams John Oxford Street London 2 Bush George Fifth Avenue New York 3 Carter Thomas Changan Street Beijing IN 操纵符实例当初,咱们盼望从上表当选取姓氏为 Adams 和 Carter 的人:咱们能够应用上面的 SELECT 语句:SELECT * FROM PersonsWHERE LastName IN ('Adams','Carter')成果集:Id LastName FirstName Address City 1 Adams John Oxford Street London 3 Carter Thomas Changan Street BeijinglikeLIKE 操纵符LIKE 操纵符用于在 WHERE 子句中搜寻列中的指定形式。SQL LIKE 操纵符语法SELECT column_name(s)FROM table_nameWHERE column_name LIKE pattern提醒:"%" 可用于界说通配符(形式中缺乏的字母)。 在搜寻数据库教程教程中的数据时,您能够应用 SQL 通配符。SQL 通配符在搜寻数据库中的数据时,SQL 通配符能够替换一个或多个字符。SQL 通配符必需与 LIKE 运算符一同应用。在 SQL 中,可应用以下通配符:通配符 描写 % 替换一个或多个字符 _ 仅替换一个字符 [charlist] 字符列中的任何繁多字符 [^charlist]或许[!charlist] 不在字LIKE 操纵符用于在 WHERE 子句中搜寻列中的指定形式。LIKE 操纵符LIKE 操纵符用于在 WHERE 子句中搜寻列中的指定形式。 SQL LIKE 操纵符语法SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern 原始的表 (用在例子中的):Persons 表: Id LastName FirstName Address City 1 Adams John Oxford Street London 2 Bush George Fifth Avenue New York 3 Carter Thomas Changan Street BeijingLIKE 操纵符实例例子 1当初,咱们盼望从下面的 "Persons" 表当选取寓居在以 "N" 开端的都会里的人: 咱们能够应用上面的 SELECT 语句: SELECT * FROM Persons WHERE City LIKE 'N%' 提醒: "%" 可用于界说通配符(形式中缺乏的字母)。 成果集:Id LastName FirstName Address City 2 Bush George Fifth Avenue New York例子 2接上去,咱们盼望从 "Persons" 表当选取寓居在以 "g" 开头的都会里的人:咱们能够应用上面的 SELECT 语句:SELECT * FROM Persons WHERE City LIKE '%g'成果集:Id LastName FirstName Address City 3 Carter Thomas Changan Street Beijing更多具体内容请检查:mysql教程.htm">http://www.dnjishu.com/database/109/sql-like-like-mysql.htm般情形下咱们处理此成绩的思绪是将传入的字符串用一个split函数来处置,终极处置的成果是一张表,而后将这个表做自查问便可,以下: 复制代码 代码以下:DECLARE @IDs VARCHAR(4000) SET @IDs='BC71D821-9E25-47DA-BF5E-009822A3FC1D,F2212304-51D4-42C9-AD35-5586A822258E' DECLARE @temp TABLE(str VARCHAR(50)) INSERT INTO @temp SELECT * FROM dbo.Split(@IDs,',') SELECT * FROM Orders WHERE OrderGUID IN (SELECT str FROM @temp)固然split函数体系比不供给,须要咱们本人写: 复制代码 代码以下:CREATE FUNCTION Split ( @SourceSql varchar(8000), @StrSeprate varchar(10) ) RETURNS @temp TABLE(F1 VARCHAR(100)) AS BEGIN DECLARE @i INT SET @SourceSql=rtrim(ltrim(@SourceSql)) SET @i=charindex(@StrSeprate,@SourceSql) WHILE @i>=1 BEGIN INSERT @temp VALUES(left(@SourceSql,@i-1)) SET @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i) SET @i=charindex(@StrSeprate,@SourceSql) END IF @SourceSql<>'' INSERT @temp VALUES(@SourceSql) RETURN END像如许做十分费事,并且还须要借助函数来完成,上面先容一种简略的方式,由于GUID是独一的,以是在下面的例子中能够应用LIKE来取代IN也能够到达一样的查问后果: 复制代码 代码以下:SELECT * FROM Orders WHERE 'BC71D821-9E25-47DA-BF5E-009822A3FC1D,F2212304-51D4-42C9-AD35-5586A822258E' LIKE '%'+convert(VARCHAR(40),OrderGUID)+'%'

上一篇:php字符串处理函数-网络编程

下一篇:没有了