我在列中存储了一个由逗号分隔的状态列表:
像这样:1,2,3,4,5,6,7,8.. 等等,只是他们的 ID。
然后我正在执行查询以获取所有状态为 ID 8 的行,并且当状态列表中的项目很少时它可以工作。
这是查询和表:
mysql> select id_partner, name, states from partner where 8 IN (states);
+------------+----------------+--------------------+
| id_partner | name | states |
+------------+----------------+--------------------+
| 1 | Inmo Inmo | 8,9,10 |
| 2 | Foto Piso | 8,9,10,11,12,13,14 |
| 4 | PARTNER 001-A | 8 |
| 6 | EnAlquiler | 8 |
| 7 | Habitaclia.com | 8,43,50 |
+------------+----------------+--------------------+
5 rows in set (0.00 sec)
如果列状态包含 10 个用逗号分隔的 ID,它将起作用,但如果它有 50 个或更多,它将不再起作用。在上面的结果中,它不会显示具有许多状态的行,包括 ID 为 8 的行。
任何的想法?我正在使用这种方法不必创建另一个表来保存合作伙伴和州之间的关系,还是我应该做得更好?