select * from table where aa like '%5%' or aa like '%6%'
select * from tb where patindex('%[5,6]%',column)>0
like 和 charindex 我都用过 他们出现一个严重错误比如 2,3,22,33,222,333 如果搜索 2 22 222都会出来
select * from table where aa like '%,5,%' or aa like '%,6,%'
select * from table where aa like '%,5,%' or aa like '%,6,%' 呵呵 这样的话 那我的起始数和和结尾数都要加上 逗号 那我的数组就要写成 ,1,2,3,4,5,6, 这样数组不就错误了!
LS的情况没考虑全 CREATE TABLE c ( ID INT PRIMARY KEY IDENTITY(1,1), name NVARCHAR(1000) )INSERT c(name) SELECT '1,2,3,4,5' UNION ALL SELECT '13,54,45,6' UNION ALL SELECT '4,5,9' UNION ALL SELECT '7,6,456,54' UNION ALL SELECT '5,4,9' UNION ALL SELECT '6,7,9' UNION ALL SELECT '8,9,5,6,7' UNION ALL SELECT '8,9,6,5,4,8' UNION ALL SELECT '1,2,3,4,51' UNION ALL SELECT '13,54,45,63' UNION ALL SELECT '4,54,9' UNION ALL SELECT '7,65,456,54' UNION ALL SELECT '56,4,9' UNION ALL SELECT '64,7,9' UNION ALL SELECT '8,9,54,64,7' UNION ALL SELECT '8,9,64,54,4,8' select * from c where name like '%,5,%' or name like '%,6,%'or name like '%,5' or name like '%,6'or name like '5,%' or name like '6,%' 5或6可能是最后一个数字
谢谢大家! 可能我已开始表达的不是很清楚 我在表达一次我建立一个表ID UID TITLE 1 1,2,3,6,7,22,33,222 小李我现在想搜索一下 凡是 ID 等于 2 的用户 显示 小李那就需要 Select Form A Where UID like '%2%' 但是这样的话 UID 22,222的用户登录通用可以看到 TITLE的值 4楼的朋友让我 ,2, 这样确实可以解决问题 但是这些 我字段中的数组就要前后 都加上 逗号 “,1,2,3,6,7,22,33,222," 我觉得这样麻烦 想问问看看有没有别的函数可以这样就像 SQL中的 IN 一样 会自动 就查询数组!!!!!呵呵
这样可以:SELECT * FROM #c where ','+name+',' LIKE '%,[56],%' 但这种违反第一范式的设计,性能不会太好。
ls稍修改一下: SELECT * FROM #c where ','+name+',' LIKE '%,[5|6],%' 5或6 [5|6]
呵呵 这样的话 那我的起始数和和结尾数都要加上 逗号
那我的数组就要写成 ,1,2,3,4,5,6,
这样数组不就错误了!
CREATE TABLE c
(
ID INT PRIMARY KEY IDENTITY(1,1),
name NVARCHAR(1000)
)INSERT c(name)
SELECT '1,2,3,4,5' UNION ALL
SELECT '13,54,45,6' UNION ALL
SELECT '4,5,9' UNION ALL
SELECT '7,6,456,54' UNION ALL
SELECT '5,4,9' UNION ALL
SELECT '6,7,9' UNION ALL
SELECT '8,9,5,6,7' UNION ALL
SELECT '8,9,6,5,4,8' UNION ALL
SELECT '1,2,3,4,51' UNION ALL
SELECT '13,54,45,63' UNION ALL
SELECT '4,54,9' UNION ALL
SELECT '7,65,456,54' UNION ALL
SELECT '56,4,9' UNION ALL
SELECT '64,7,9' UNION ALL
SELECT '8,9,54,64,7' UNION ALL
SELECT '8,9,64,54,4,8'
select * from c where name like '%,5,%' or name like '%,6,%'or name like '%,5' or name like '%,6'or name like '5,%' or name like '6,%'
5或6可能是最后一个数字
我在表达一次我建立一个表ID UID TITLE
1 1,2,3,6,7,22,33,222 小李我现在想搜索一下 凡是 ID 等于 2 的用户 显示 小李那就需要 Select Form A Where UID like '%2%'
但是这样的话 UID 22,222的用户登录通用可以看到 TITLE的值
4楼的朋友让我 ,2, 这样确实可以解决问题 但是这些 我字段中的数组就要前后 都加上 逗号 “,1,2,3,6,7,22,33,222,"
我觉得这样麻烦 想问问看看有没有别的函数可以这样就像 SQL中的 IN 一样 会自动 就查询数组!!!!!呵呵
但这种违反第一范式的设计,性能不会太好。
SELECT * FROM #c where ','+name+',' LIKE '%,[5|6],%'
5或6 [5|6]