【发布时间】:2012-01-11 16:59:37
【问题描述】:
我在 MySQL 数据库中有一个表。在该表中有一个名为“选择”的文本字段,其中包含编号值,由管道字符分隔(例如:44|5|23|546|.....)。我还有一个php数组:$values = array(63,35,7,5);
我需要将“选择”字段称为选项数组(由“|”分隔)并仅选择至少包含 $values 数组中数字之一的行。
我希望我能准确地解释我的问题,因为我的英语很差...谢谢。
【问题讨论】:
-
我认为实际的问题是数据库设计没有将关系元素存储为不同的数据片段。为什么不将该管道分隔的字段拆分为单独的表?查询它会变得容易得多,因为 SQL 旨在查询关系表。
-
问题是一个字段通常只包含一个值。不是多个值。如果您需要在一个字段上有多个值,则应该有一个具有关系(多对多关系)的表。更多详情请看这里:tomjewett.com/dbdesign/dbdesign.php?page=manymany.php
-
这是一个强项,如果我不能为此提供更简单的解决方案,我会改变这个逻辑。更改数据库的结构会花费我很多时间,而且我有点懒。