我使用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 ='保险'”;
感谢。
答案 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