【问题标题】:mysql field data is array how can select item [duplicate]mysql字段数据是数组如何选择项目[重复]
【发布时间】:2016-05-19 23:56:51
【问题描述】:

表名数据

ID  | Name | List
-----------------
1   | Test 1 | 1,2,4,6
2   | Test 2 | 2,4
3   | Test 3 | 4,6,7
3   | Test 4 | 2

如何从 'list' 有 2 个的 'data' 表中选择项目?

运行查询后想看到这个结果:

ID  | Name | List
-----------------
1   | Test 1 | 1,**2**,4,6
2   | Test 2 | **2**,4
3   | Test 4 | **2**

【问题讨论】:

  • 您应该规范化您的表格。每个值 1 行。 stackoverflow.com/questions/3653462/…
  • 是的,正如@chris85 所说。这是一种可怕的做法,会导致无休止的头痛。
  • 使用 find_in_set(2,list)
  • 快速/肮脏的破解:find_in_set()。正确的解决方法:在你给自己带来更多麻烦之前规范你的设计。
  • @marc-b 同意兄弟.. 规范化你的表的最佳方法是在 set 或 LIKE 中使用 find

标签: php mysql


【解决方案1】:

建议:

首先,您需要将表结构规范化为一行中的一个列表 ID,否则您可以使用 FIND_IN_SET

解决方案

SELECT * FROM Data WHERE FIND_IN_SET(2,List);

建议二

您还可以创建一个单独的表来保存列表 ID 与数据 ID 的另一个建议是,作为字符串列的名称字段不会仅重复建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-08
    • 2012-12-17
    • 1970-01-01
    • 2020-11-03
    • 2020-02-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-11
    相关资源
    最近更新 更多