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

标签 php mysql database

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

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

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

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

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

谢谢。

最佳答案

您的数据库结构从根本上是错误的,很可能会导致进一步的可伸缩性问题。你应该看看 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

关于php - 使用 PHP/MySQL 从包含多个值的列中提取单个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12564255/

相关文章:

Mysql存储函数返回错误值

sql - MySQL join显示类别、子类别和子子类别

php - 不必要的页面抓取

php - 从不同表插入时自动增量重叠

mysql - bash - SQL 查询输出到变量

php - 检查数据库中的用户名,避免重复

php - insert语句不将记录插入数据库

java - 单词之间的正则表达式

php - 为什么 carbon addMinutes 加法不好

java - 抽象类和接口(interface)在一起?