我有一个表的设置方式如下搜索MySQL的领域
`id` int(11) NOT NULL AUTO_INCREMENT,
`eventid` int(11) NOT NULL,
`invites` text COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
在该表中我有一个看起来像这样
1, 127, '32215, 55648, 89887, 55555, 66666, 33333'
2, 168, '44444, 33333, 121212, 0540541'
我将如何搜索invites
场contnts行的内容对于特定数字的匹配,例如如果我想搜索33333
,它将返回两行,但如果我搜索了44444
,它将只返回第二行?
缺点是什么,什么是更好的解决方案?考虑到我在邀请字段 – mrpatg 2009-12-02 04:47:41
中每行最多可能有1000个差异数字,但缺点是如果find_in_set()必须通过寻找id的文本字段进行解析,那么find_in_set()会很慢,但更好的解决方案是每个eventid有多行,并使邀请为一个int,每行都是您当前邀请字段的值之一。然后为eventid和invites添加索引(或者如果你重命名它,我会假设它们是ids),那么在表格上简单选择一个特定的inviteid将会更快地返回正确的eventids。 – catfarm 2009-12-02 05:03:48