MySQL FIND_IN_SET() 未按预期工作

2023-12-04

我有下表:

... | 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 个值:

  1. 10
  2. 4- 空格后接 4
  3. 7- 空格后跟 7
  4. 1- 空格后跟 1

它们都不等于1

解决方案:停止使用此方法并将架构规范化为使用一对多(或多对多)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL FIND_IN_SET() 未按预期工作 的相关文章

随机推荐