如何在php中通过id获取记录

时间:2017-09-21 10:17:27

标签: php

这是我的数据库视图

enter image description here

我需要使用学生ID 232获得头衔。但学生ID存储在数组中,如192,229,232。我怎样才能回溯232条记录?

请指导我..

由于

3 个答案:

答案 0 :(得分:2)

使用IN子句从数组

获取记录
<?php
$sql = 'SELECT * 
          FROM `table` 
         WHERE `id` IN (' . implode(',', array_map('232', $array)) . ')';

答案 1 :(得分:1)

使用FIND_IN_SET

EG。

SELECT * FROM event WHERE FIND_IN_SET(232,student);

答案 2 :(得分:1)

您可以使用LIKE条件来获取包含此student ID的结果:

SELECT * FROM `event` WHERE student LIKE '%232%';

这将返回student列中包含“232”的所有行。

但如果您有机会更改表格结构,我建议您将student列提取到数据透视表。

您可以创建仅包含两列的event_student表:eventstudent。每行都会将特定student与特定event相关联。可以使用简单的JOIN轻松提取数据:

SELECT * FROM `event` e
    INNER JOIN `event_student` es ON e.eventID=es.event
    WHERE es.student=232;

如果您以这种方式存储学生和活动之间的联系,您将获得查询的灵活性,并避免在使用上述建议时可能出现的错误。想象一下,你有一个ID为2324或12323的学生。它们都包含所需的'232'字符串,两者都匹配'%232%'模式并导致返回错误的数据。