使用PHP/MySQL从包含多个值的列中提取单个值
我使用内爆函数在一列中插入了select语句中的多个值。现在我想分别检索这些值,以便进一步查询。 我有一个student表,在该表中,我使用内爆函数implode(',',$_POST['aoi']);将他们感兴趣的不同区域存储在单个列中;。表的结构如下所示:使用PHP/MySQL从包含多个值的列中提取单个值,php,mysql,database,Php,Mysql,Database,我使用内爆函数在一列中插入了select语句中的多个值。现在我想分别检索这些值,以便进一步查询。 我有一个student表,在该表中,我使用内爆函数implode(',',$_POST['aoi']);将他们感兴趣的不同区域存储在单个列中;。表的结构如下所示: id | Name | AOI ------------------------------------------- 101 | Paul | Hardware,Networking 102 |
id | Name | AOI
-------------------------------------------
101 | Paul | Hardware,Networking
102 | Fred | Finance,Insurance,Banking
现在我想根据学生的兴趣分别检索这些学生数据。我尝试使用explode函数提取数据。但它以数组格式返回数据
我必须分别提取感兴趣的区域。有人能告诉我如何从包含多个值的列中提取单个值吗。这样我可以执行进一步的查询
比如$query=“从学生中选择student.id、student.Name,其中AOI=‘保险’”
谢谢。您的数据库结构从根本上是错误的,很可能会进一步导致可伸缩性问题。你应该研究一下这个概念。在此特定场景中,您应该使用多对多关系: 学生:
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
您的数据库结构从根本上是错误的,它很可能会进一步导致可伸缩性问题。你应该研究一下这个概念。在此特定场景中,您应该使用多对多关系: 学生:
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
技巧1,规范化你的数据库。提示2:使数据库正常化。如果使用其他数据库,如MongoDB,则可以将
AOI
添加为数组并存储值。但是使用MYSQL,你需要规范化数据库。我是一个数据库新手。我一定会尝试实现规范化概念。谢谢技巧1,规范化你的数据库。提示2:使数据库正常化。如果使用其他数据库,如MongoDB,则可以将AOI
添加为数组并存储值。但是使用MYSQL,你需要规范化数据库。我是一个数据库新手。我一定会尝试实现规范化概念。谢谢这就是答案,其他答案到底是什么,鹅。这就是答案,其他答案到底是什么,鹅。