Php Mysql如何选择字段数组中包含此值的行

Php Mysql如何选择字段数组中包含此值的行,php,mysql,Php,Mysql,我有这个表结构 +----+-------+---------------+ | id | post | authors_ids | +----+-------+---------------+ | 1 | test1 | ["1","2"] | +----+-------+---------------+ | 2 | test2 | ["1","3"] | +----+-------+---------------+ | 3 | test3 | ["3","4","

我有这个表结构

+----+-------+---------------+
| id | post  | authors_ids   |
+----+-------+---------------+
| 1  | test1 | ["1","2"]     |
+----+-------+---------------+
| 2  | test2 | ["1","3"]     |
+----+-------+---------------+
| 3  | test3 | ["3","4","5"] |
+----+-------+---------------+
我要做的是选择在authors\u id字段中包含特定值的行,例如,我需要选择authors\u id数组包含数字4的帖子

我知道表的结构是错误的,但在这个时候我将无法改变它


如何实现这一点?

实现这一点的一个快速方法是选择使用以下选项:


对于MySQL < 5.7选择>,在其中,如“JSON”中的AuthsIDS ID“% 4%”,然后:考虑规范化您的架构。如果AuthsIDS具有这个值[3,4,5,44,44,434,334 ],它仍然有效,因为它包含SELECT中的双引号。所以44或441不匹配
SELECT * FROM `posts` WHERE `authors_ids` LIKE '%"4"%';