VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 24|回复: 7

求助数据库查询问题...

[复制链接]

2

主题

5

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2020-3-13 19:30:01 | 显示全部楼层 |阅读模式
有类似下面一个数据表.
表一.
ID1      Name      KeyId
1        a1      2|22|3|5
2        a2      5|22|33|1
3        a3      8|10|2|1
4        a4      9|10|11|22
5        a5         2
表二
ID2     text
1        123
2        456
3        789
4        1112

KeyId里面存放的是表二的ID用"|"字符分开,假设表二 ID2=2 选取表一里面KeyId有2的记录.
反之KeyId里面没有2的,将2写进去用"|"分开.

求大家指点代码.
回复

使用道具 举报

0

主题

7

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2020-6-12 14:30:01 | 显示全部楼层
把表一修改成
ID1      Name      KeyId
1        a1      2,22,3,5
2        a2      5,22,33,1
3        a3      8,10,2,1
4        a4      9,10,11,22
5        a5         2

一切都迎刃而解
回复

使用道具 举报

0

主题

2

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2020-6-14 12:45:01 | 显示全部楼层
$KeyId=split('|',$rs);
if(!array_key_exists($ID2,$KeyId)) $rs.='|'.$ID2;
回复

使用道具 举报

2

主题

5

帖子

4

积分

新手上路

Rank: 1

积分
4
 楼主| 发表于 2020-6-20 12:15:01 | 显示全部楼层
改成","或者"|"SQL语句怎么写呢?
回复

使用道具 举报

2

主题

5

帖子

4

积分

新手上路

Rank: 1

积分
4
 楼主| 发表于 2020-6-20 17:15:01 | 显示全部楼层
KeyId里面有2的我要删掉怎么办?
回复

使用道具 举报

2

主题

5

帖子

4

积分

新手上路

Rank: 1

积分
4
 楼主| 发表于 2020-6-20 22:00:01 | 显示全部楼层
$KeyId=split('|',$rs);
if(!array_key_exists($ID2,$KeyId)) $rs.='|'.$ID2;


这样好像连22也包括了.
回复

使用道具 举报

0

主题

26

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2020-6-22 09:30:01 | 显示全部楼层
恩,用逗号。
回复

使用道具 举报

0

主题

7

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2020-6-22 11:15:01 | 显示全部楼层
select find_in_set(2,KeyId) from 表一

将|改成,   这样就可以查出来哪条有2哪条没有,然后进行你要的操作
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|CopyRight © 2008-2020|verysource.com ( 京ICP备17048824号-1 )

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