Mysql 我必须通过从SQL表中检索来过滤记录。我希望sql中表列中同一字段中的值不再显示

Mysql 我必须通过从SQL表中检索来过滤记录。我希望sql中表列中同一字段中的值不再显示,mysql,sql,Mysql,Sql,我不能这样做,请帮忙。在我下面编写的代码中,程序id 1有两个值。因此,是否有一种过滤方法,以使值不会再次显示在过滤结果中,即此处指定的免费午餐。过滤时,当我从数据库中检索时,我得到如下复选框 免费的一餐,免费的午餐 b免费午餐 c免费晚餐 我想要一份只展示免费食物的工作 INSERT INTO `programs` (`ProgramID`, `UserID`,`Speciality`) VALUES (1, 'huy45', 'Free meal, Free lunch'), (2, 'ga

我不能这样做,请帮忙。在我下面编写的代码中,程序id 1有两个值。因此,是否有一种过滤方法,以使值不会再次显示在过滤结果中,即此处指定的免费午餐。过滤时,当我从数据库中检索时,我得到如下复选框

免费的一餐,免费的午餐

b免费午餐

c免费晚餐

我想要一份只展示免费食物的工作

INSERT INTO `programs` (`ProgramID`, `UserID`,`Speciality`) VALUES
(1, 'huy45', 'Free meal, Free lunch'),
(2, 'ga32','Free lunch'),
(3, 'sharvar3','Free Dinner'),

您的表中有重复的信息,您不需要它

我会使用另一张桌子来储存特色菜,例如:

特长

 id | name
----+-------------
 1  | Free meal
 2  | Free lunch
 3  | Free dinner
因此,您可以轻松地使用外键在表
程序中存储此类信息

接下来,您不想存储序列化信息。这与使用RDBMS的目的背道而驰

我会这样构造表
程序

 ProgramID | UserID     | SpecialityID
-----------+------------+--------------
 1         | 'huy45'    | 1
 1         | 'huy45'    | 2
 2         | 'ga32'     | 2
 3         | 'sharvar3' | 3
要检索专业名称的
程序ID
用户ID
专业
,您可以使用以下查询:

SELECT p.`ProgramID`,
       p.`UserID`,
       s.`name` AS "Speciality Name"
FROM `programs` p
INNER JOIN `Speciality` s
ON p.SpecialityID = s.id
WHERE s.`name` = 'Free lunch';

架构(MySQL v5.7)


查询#1

SELECT p.`ProgramID`,
       p.`UserID`,
       s.`name` AS "Speciality Name"
FROM `programs` p
INNER JOIN `Speciality` s
ON p.SpecialityID = s.id
WHERE s.`name` = 'Free lunch';

| ProgramID | UserID | Speciality Name |
| --------- | ------ | --------------- |
| 1         | huy45  | Free lunch      |
| 2         | ga32   | Free lunch      |


您使用的是什么DBMS?Xampp PhpmyadminXampp Phpmyadmin不是DBMS。MySQL是。
SELECT p.`ProgramID`,
       p.`UserID`,
       s.`name` AS "Speciality Name"
FROM `programs` p
INNER JOIN `Speciality` s
ON p.SpecialityID = s.id
WHERE s.`name` = 'Free lunch';

| ProgramID | UserID | Speciality Name |
| --------- | ------ | --------------- |
| 1         | huy45  | Free lunch      |
| 2         | ga32   | Free lunch      |