首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL的like的有关问题

2013-02-24 
SQL的like的问题有个字段叫 manIds列格式是row1 [1][12][23][34][45][56][56]row2 [34][56]row2 [34][45][

SQL的like的问题
有个字段叫 manIds
列格式是
             
row1 [1][12][23][34][45][56][56]
row2 [34][56]
row2 [34][45][56]
row2 [34][45]


用一句SLQ查出NAME含[45] 的列
LIKE该怎么写???? 对哦,你这个不是一列里面的数据吗?你要找出:用一句SLQ查出NAME含[45] 的列???是行吧?
[解决办法]

分不开吗?
----------------------------
-- Author  :DBA_Huangzj(發糞塗牆)
-- Date    :2013-01-19 14:34:43
-- Version:
--      Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (Intel X86) 
--    Jun 17 2011 00:57:23 
--    Copyright (c) Microsoft Corporation
--    Enterprise Edition on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)
--
----------------------------
--> 测试数据:[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([manIds] varchar(50))
insert [huang]
select '[1][12][23][34][45][56][56]' union ALL
select '[4545]' union ALL
select '[34][56]' union all
select '[34][45][56]' UNION all
select '[34][45]'
--------------开始查询--------------------------


 
select * from [huang] WHERE CHARINDEX('[45]',manids,1)>0
----------------结果----------------------------
/* 
manIds
--------------------------------------------------
[1][12][23][34][45][56][56]
[34][45][56]
[34][45]

(3 行受影响)

 
*/


[解决办法]
引用:
你这样不行的

分不开 [45]和[4545]
版主的用charindex的语句可以分开[4545]的
用like 的话 要使用ESCAPE关键字定义转义符 
--> 测试数据:[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([manIds] varchar(27))
insert [huang]
select '[1][12][23][34][45][56][56]' union all
select '[34][56]' union all
select '[34][4545][56]' union all
select '[34][45]'
--------------开始查询--------------------------

select * from [huang] WHERE manids LIKE '%/[45/]%'escape '/'

----------------结果----------------------------
/* 
manIds
---------------------------
[1][12][23][34][45][56][56]
[34][45]

(2 行受影响)

*/

热点排行