我有下表:
... | parents_id | ...
________________________
... | 1, 40, 7 | ...
... | 10, 4, 7, 1 | ...
... | 45, 40, 1, 7 | ...
... | other_rows | ...
现在,我需要获取这三行,我使用这个查询SELECT * FROM products WHERE FIND_IN_SET(1, parents_id) > 0
,但我只得到第一行(1, 40, 7
),有什么帮助吗?
根据文档 - FIND_IN_SET
的第二个参数是逗号分隔的列表。所以价值10, 4, 7, 1
用逗号分割成以下 4 个值:
10
-
4
- 空格后接 4
-
7
- 空格后跟 7
-
1
- 空格后跟 1
它们都不等于1
解决方案:停止使用此方法并将架构规范化为使用一对多(或多对多)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)