mysql 有间隔符的字符串查询的问题

image
如图,想要查询字段 type_sid 中带有 gys 的所有记录
要怎么写的优雅,查询的准确。
还有是不是这种设计不太合理?要使用主从表更好 ?

阅读 1.7k
2 个回答

SELECT * FROM contact_company WHERE FIND_IN_SET('gys',type_sid);

这样用不上索引啊..

如果你这个类型比较少,就在这个表里,每个类型一个标志位来记录.
如果你的这个类型比较多的话,还是加个类型表和一个中间多对多的关系表来处理.

又或者存储 bit 类型,每个 bit 位代表一个类型,然后用位计算来判断.

这样设计其实挺不合理的,弄个中间表这样查询比较自然和符合逻辑

iidtype_sid
1kh
1gys

这样查询就直接
select type_sid from a where iid = 1
这样直接查询就行了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题