
1 fairyto2 2019-04-07 21:31:12 +08:00 via iPhone 你这个表设计都不符合 nf1 |
2 18688639114 2019-04-07 21:37:41 +08:00 如果会员只允许出现在一个 组里面,那 A 表去加个 group_id,B 表也不需要 nameList 了 如果会员可以存在多个组内,那就得重新设计一下 。 1:B 表删除 nameList, 保留 id group_name 2: 增加 C 表 组内成员表 , 需要有 group_id user_id 这样你后面的业务处理起来就方便很多! |
3 lzm1005 OP @18688639114 现有的 数据表就是这样的 如何在不动数据库的情况下 做处理 或者 A 表没有 group_id 的情况下 如何处理? |
4 qiayue PRO 没有什么东西是一成不变的,改表是最经济的做法,一劳永逸 |
5 18688639114 2019-04-07 21:49:33 +08:00 @lzm1005 SUBSTRING_INDEX 这个函数可以帮到你,将“张三,李四,王五” 转换的, 不过处理起来忒麻烦, 具体怎么用这个函数得好好查下文档。。。 |
6 tomczhen 2019-04-07 21:52:04 +08:00 从描述内容举例看,表 B 字段 nameList 的值可能是 “张三,李四,王五” 整个字符串,也就是这个表设计是反范式的。 估计后端是 PHP 写的吧 :doge: |
7 xiangyuecn 2019-04-07 21:52:57 +08:00 不改数据库,就赶紧跑路吧。或者祈祷第一个同名的人晚点出现,再跑路。 |
8 lzm1005 OP @xiangyuecn 只是举例.. |
9 lzm1005 OP @xiangyuecn 值肯定是唯一的. |
10 xiangyuecn 2019-04-07 21:54:37 +08:00 #7 username ? 唯一? 当我没说 |
11 ebony0319 2019-04-07 22:04:31 +08:00 你的数据属于 sql 反模式。但是还是建议有一张表来记录这种关系。 查这种的思路在 mysql 种写一个类似于 filter 的过滤函数,传入两个字符串 A,B,B 切割后判断 A 在不在里面,但是会非常慢。 |
12 huangqincan 2019-04-14 21:48:33 +08:00 select * from A where usernme no in (select namelist from B) |