1
yxwzaxns 2019-06-14 13:32:37 +08:00 via iPhone
把 userID 的自增值设成你的系统预计服务的用户数量的值,比如 10000 能服务 10 万的用户
|
2
hoythan 2019-06-14 13:34:42 +08:00
。。。匹配 ,6,
|
3
niucility 2019-06-14 13:36:46 +08:00 via Android
find in set
|
4
echoway 2019-06-14 13:37:16 +08:00
select * from table where ','+user_ids+',' like '%, 用户 id, %'
SELECT * FROM table WHERE instr(','+用户 ID+',' , ','+user_ids+',' ) > 0 |
5
aa65535 2019-06-14 13:38:30 +08:00 3
FIND_IN_SET()
|
6
kyuuseiryuu 2019-06-14 13:47:16 +08:00
就这么爱反范式吗。
|
7
msg7086 2019-06-14 13:50:11 +08:00
可以把表结构转换成更人性化的结构,比如更高范式的结构。
|
8
silentstorm 2019-06-14 14:02:42 +08:00
这表结构设计的简直让人无话可说,而且查询速度估计也快不了。
|
10
IMFFA OP |
11
XuanFei990 2019-06-14 14:12:01 +08:00
楼主的头像,以前一直拿来当做桌面来着。。
只知道叫夏娜,,☺☺ |
12
gaius 2019-06-14 14:13:56 +08:00
你是用 Set 存的话,就转成对象 contains 不就行了
|
13
opengps 2019-06-14 14:15:49 +08:00
这种建议用外键存储,真要这么用的话修正下楼主的语句:
select * from table where user_ids like '%,id,%' or user_idslike 'id,%' or user_idslike '%,id' 注意要查询的 id 前后加逗号,另外就是,针对开头结尾需要兼容下 |
14
IMFFA OP @XuanFei990
就是夏娜,出自动漫“灼眼的夏娜” |
15
XuanFei990 2019-06-14 14:39:27 +08:00
@IMFFA 没看过 ,,只是知道名字,仅此而已☺☺
|
16
IMFFA OP |
17
GGGG430 2019-06-14 15:10:53 +08:00 via iPhone
将这种多个数字存储改成二进制形式,如要存 3,6 则改成 2∧3+2∧6 = 72,最后该字段实际存储的是 64,查阅的时候只需要在 sql 中 select 64&2∧x 即可,简单方便,缺点就是整形数字有上限
|