我有两张这样的table。但我在查询时遇到了麻烦。我想查询组中的成员等于can\u view\u group的所有post,can\u view\u group的列类型是json。
我只知道json_所包含的内容和中的where(列)可以帮助我完成这项工作,但我实际上无法让它工作。我怎样才能让它工作?
谢谢。
p、 我只想要普通的sql代码,因为当我将它应用到php代码或任何其他东西时,它应该是最简单的。
post
----------------------------------------
post_id | can_view_group |
----------------------------------------
1 | ["1","2","3"] |
----------------------------------------
member_group
----------------------------------------
member_id | group_id |
----------------------------------------
123 | 1 |
----------------------------------------
123 | 2 |
----------------------------------------
1条答案
按热度按时间cnjp1d6j1#
最简单的方法是使用多个嵌套
REPLACE
函数以获取逗号分隔的字符串和mysql的非规范化函数FIND_IN_SET
它与逗号分隔的字符串一起工作。查询
请参见演示http://sqlfiddle.com/#!9/37e997/5号
一个缺点是你永远不能用这种方法来使用索引。
最好的选择仍然是规范化,但这肯定需要更改应用程序。