使用PHP / MySQL从包含多个值的列中提取单个值

时间:2012-09-24 11:36:06

标签: php mysql database

我使用implode函数在单个列中插入了select语句中的多个值。现在我想分别为我的进一步查询检索这些值。 我有一个学生表,我在其中使用implode函数implode(',',$ _POST ['aoi']);将他们感兴趣的不同区域存储在一个列中。表格的结构如下:

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

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

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

喜欢$ query =“选择student.id,来自学生的student.Name,其中AOI ='保险'”;

感谢。

1 个答案:

答案 0 :(得分:5)

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

生:

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

StudentInterests

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

兴趣

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