sql 散分

lx8900133 2009-03-19 10:13:15
表名 t_info
id info gid
1 aaaaa 1
2 bbbbb 1,2
3 cccc 3,4,11
4 dddd 1,2,3,4


一用户 他的组id 是1 , 现在从表中取 属于1的信息 ,取到的结果应该是 第1,2,4条
sql????
...全文
96 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzxap 2009-03-19
  • 打赏
  • 举报
回复
[code=SQL]
SELECT DISTINCT * FROM
(
select * from t_info where gid='1'
union all
select * from t_info where charindex('1,',gid)>0
union all
select * from t_info where charindex(',1,',gid)>0
)A

[/CODE]
zzxap 2009-03-19
  • 打赏
  • 举报
回复
[code=SQL]

select * from t_info where gid='1'
union all
select * from t_info where charindex('1,',gid)>0
union all
select * from t_info where charindex(',1,',gid)>0


[/CODE]
zhujin1123 2009-03-19
  • 打赏
  • 举报
回复

SELECT * FROM t_info WHERE GID LIKE '%1%'
weizijia 2009-03-19
  • 打赏
  • 举报
回复
为什么不弄个住外关系的表啊
你这表省事了,查询麻烦了,以后还有变竖表的事
itliyi 2009-03-19
  • 打赏
  • 举报
回复
ding
wanghao3616 2009-03-19
  • 打赏
  • 举报
回复
表也可以做成两个表

表名 t_info
id info gid
1 aaaaa ,1,
2 bbbbb ,1,2,
3 cccc ,3,4,11,
4 dddd ,1,2,3,4,


表名 t_infoIngroup
id tid gid
1 1 1
2 2 1
3 2 2
4 3 3
....
这样

select t_info.* from t_infoIngroup
left join t_info on t_infoIngroup.tid=t_info.id
where t_infoIngroup.gid=1
花郎 2009-03-19
  • 打赏
  • 举报
回复
SQL: select * from t_info where gid like '%,1,%'
zzxap 2009-03-19
  • 打赏
  • 举报
回复
[code=SQL]
select * from t_info where charindex('1',gid)>0
union all
select * from t_info where charindex('1,',gid)>0
union all
select * from t_info where charindex(',1,',gid)>0

[/CODE]
vbman2003 2009-03-19
  • 打赏
  • 举报
回复
select * from t_info where charindex(',1,',','+gid+',')>0
zzxap 2009-03-19
  • 打赏
  • 举报
回复
select * from t_info where charindex('1',gid)>0
wanghao3616 2009-03-19
  • 打赏
  • 举报
回复
能改变gid的存储方式吗?

如果改为这样是不是更便于操作

表名 t_info
id info gid
1 aaaaa ,1,
2 bbbbb ,1,2,
3 cccc ,3,4,11,
4 dddd ,1,2,3,4,

这样用

select * from t_info where gid like '%,1,%'
byte377 2009-03-19
  • 打赏
  • 举报
回复
UP
xfreyes 2009-03-19
  • 打赏
  • 举报
回复
表结构很不合理!!
yushuiyouyue 2009-03-19
  • 打赏
  • 举报
回复
对AJAX有兴趣的朋友,欢迎加入群78514534
对ASP.NET和C#有兴趣的朋友,欢迎加入67226009
知识与运气 2009-03-19
  • 打赏
  • 举报
回复
创建一个存储过程:


CREATE PROCEDURE sp_t_info_sel

@aa varchar(100)=null --你要查找的字符:比如你要查找的id为1,这个aa参数就是1

as



select * from t_info where d like '%'+ @aa +'%' or info like '%'+ @aa +'%' or gid like '%'+ @aa +'%'


GO

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧