Mysql 我必须通过从SQL表中检索来过滤记录。我希望sql中表列中同一字段中的值不再显示
我不能这样做,请帮忙。在我下面编写的代码中,程序id 1有两个值。因此,是否有一种过滤方法,以使值不会再次显示在过滤结果中,即此处指定的免费午餐。过滤时,当我从数据库中检索时,我得到如下复选框 免费的一餐,免费的午餐 b免费午餐 c免费晚餐 我想要一份只展示免费食物的工作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
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 |