一个php查询mysql表问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 19:29:18
一个php查询mysql表问题

说明:: 参赛队记录表
表名: csb
表内容 : 记录每个参赛队的信息
队长1名,助手1名,队成员10名,共12个人,
每个人都有4个属性: 姓名,性别,年龄,城市
参赛队共有 150 个

(意思) 参赛队 队长 队长 队长 队长 助手 助手 助手 助手 队员1 队员1 队员1 队员2 队员2 队员2 队员2 队员2 队员3 队员3 队员3 队员3 ... 队员10
代号 姓名 性别 年龄 城市 姓名 性别 年龄 城市 姓名 性别 年龄 城市 姓名 性别 年龄 城市 姓名 性别 年龄 城市 ...
(字段) csid dzxm dzxb dznl dzps zsxm zsxb zsnl zsps dy1xm dy1xb dy1nl dy1ps dy2xm dy2xb dy2nl dy2ps dy3xm dy3xb dy3nl dy3ps ...
(属性) char (后面全部一样)
(长度) 10 (后面全部一样)

注意:参赛队除了队长和助手外人数是固定外,队员人数要求上限是10人,也有是说,有的队人数没有10个人,

请专家解决问题:
1, 查询所有参赛队中所有性别为'男'的队员(不包括队长和助手)
2, 查询所有参赛队中所有性别为'男'的队员(包括队长和助手)
3, 查询所有参赛队中所有城市为'湖南'的队员(不包括队长和助手)
看不明白和不会的人不要在这里混操作分,免避真正的高手出现时被一些无知的答案笑晕过去!!!

没有提供表设计结构呀,再说了,你这也不是数据库设计,成了记事本了
如果改一下要求,增加一名队员,你的系统就崩溃了

你这个表设计有有问题,建议分为两个表,小队表和成员表。
team表:
CREATE TABLE `team` (
`team_id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`team_name` VARCHAR( 20 ) NOT NULL ,
`team_city` VARCHAR( 20 ) NOT NULL ,
`team_info` VARCHAR( 100 ) NOT NULL
) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;

member表:
CREATE TABLE `member` (
`id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`team_id` INT( 10 ) NOT NULL ,
`role` ENUM( 'header', 'helper', 'member' ) NOT NULL ,
`name` VARCHAR( 20 ) NOT NULL ,
`sex` TINYINT( 1 ) NOT NULL ,
`age` INT( 2 ) NOT NULL ,
`city` VARCHAR( 20 ) NOT NULL
) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;

这时候所有的查询一目了然:
1. select * from `member` where `sex` = 1 and `role` = 'member';
2. select * from `member` where `sex` = 1 ;
3. select `membe