【问题标题】:Extract the single value from a column containing multiple values using PHP/MySQL使用 PHP/MySQL 从包含多个值的列中提取单个值
【发布时间】:2012-09-15 20:48:28
【问题描述】:

我已使用 implode 函数将 select 语句中的多个值插入到单个列中。现在我想单独检索这些值以供进一步查询。 我有一个学生表,我在其中使用内爆函数 implode(',', $_POST['aoi']); 将他们不同的兴趣区域存储在单个列中。表的结构是这样的:

id   |  Name   |           AOI
-------------------------------------------
101  | Paul    | Hardware,Networking
102  | Fred    | Finance,Insurance,Banking

现在我想根据他们的兴趣分别检索这些学生数据。我尝试使用爆炸功能提取数据。但它以数组格式返回数据。

我必须单独提取感兴趣的区域。谁能告诉我如何从包含多个值的列中提取单个值。这样我就可以执行我的进一步查询。

Like $query = "select student.id,student.Name from student where AOI = 'Insurance'";

谢谢。

【问题讨论】:

  • 技巧一,规范你的数据库。提示 2 规范化您的数据库。 en.wikipedia.org/wiki/Database_normalization
  • 如果您使用其他数据库如MongoDB,您可以添加AOI作为数组并存储值。但是使用MYSQL,你需要对数据库进行规范化。
  • 我是数据库新手。我一定会尝试实施规范化概念。谢谢!

标签: php mysql database


【解决方案1】:

您的数据库结构根本上是错误的,并且很可能会导致进一步的可扩展性问题。您应该研究database normalization 的概念。在这种特殊情况下,您应该使用多对多关系:

学生:

id   | name  
---------------
101  | Paul    
102  | Fred    

学生兴趣

id   |  student_id  | interest_id
---------------------------------
1    |  101         | 1
2    |  101         | 2
3    |  102         | 1

兴趣

id   | interest
----------------
1    | Insurance
2    | Networkings

【讨论】:

  • 这就是答案,那些其他答案到底是什么,鹅。
猜你喜欢
  • 2011-09-23
  • 1970-01-01
  • 1970-01-01
  • 2010-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-21
  • 1970-01-01
相关资源
最近更新 更多