收藏本站腾讯微博新浪微博

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 网站开通淘帖功能 - 蓝色理想插件 论坛内容导读一页看论坛 - 给官方提建议

论坛活动及任务 地图和邮件任务 请多用悬赏提问 热夏来袭,选一款蓝色理想的个性T恤吧!

手机上论坛,使用APP获得更好体验 急需前端攻城狮,获得内部推荐机会 论坛开通淘帖功能,收藏终于可以分类了!

搜索
查看: 1731|回复: 4

[数据库] 咨询一个SQL查询的问题

[复制链接]
发表于 2008-9-15 21:18:40 | 显示全部楼层 |阅读模式
MSSQL中,一个字段中的数据为这样的字符串:
------------------------
A    12,14,32,39,91
------------------------
B    23,14,42,23,32
------------------------
C    13,24,39,67,91
------------------------
现在有另外一个字符串作为查询条件:11,25,12,14
查询的结果是只要数据库那个字段中有一个数字和查询字符串的任何一个数字匹配即选出这条记录
比如上面的例子就应该选出A,B两条记录。

请问有没有办法在SQL中实现查询?我试过建临时表可是还是无法实现这样的交叉查询,请各位帮忙想想办法。

[[i] 本帖最后由 coldstone 于 2008-9-15 21:20 编辑 ]
发表于 2008-9-15 21:40:36 | 显示全部楼层
MYSQL为
FIND_IN_SET('11', cid )
MSSQL不知道
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-15 23:12:12 | 显示全部楼层
又试了半天还是没办法,唉,谁能帮忙写个FUNCTION啊。
回复 支持 反对

使用道具 举报

发表于 2008-9-16 10:24:27 | 显示全部楼层
用split函数返回临时表,MSSQL中没有split,自己写一个
split函数:http://www.022jm.com/article_detail.asp?id=48
=======================================================
[table]数据:
title
12,14,32,39,91
23,14,42,23,32  
13,24,39,67,91
=========================================================
SQL:
SELECT *
FROM [table] as nn
WHERE exists
(
select a from dbo.split('11,25,12,14',',') as mm where
charindex(','+convert(varchar(20),(mm.a))+',',','+nn.title + ',')>0
)
==================================================================
执行结果:
12,14,32,39,91
23,14,42,23,32  
==================================================================
说明:select a from dbo.split('11,25,12,14',',')
其中的 a 跟我提供的split函数中splitcolumn对应
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-16 10:29:12 | 显示全部楼层
谢楼上,俺试试先。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|Archiver|手机版|blueidea.com ( 湘ICP备12001430号 )  

GMT+8, 2020-10-23 11:18 , Processed in 0.095463 second(s), 9 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表