作者jackghost (~~无相~~)
看板PHP
标题Re: [请益] 如何判断user是否有资格参加某个赛事
时间Wed Apr 20 23:46:49 2011
SELECT
(
CASE WHEN
SUBSTR(结果.条件1,1,2)='OK' AND
SUBSTR(结果.条件2,1,2)='OK' AND
SUBSTR(结果.条件3,1,2)='OK' AND
SUBSTR(结果.条件4,1,2)='OK' THEN '符合资格'
ELSE
'资格不符,请见其他栏位'
END
) AS 审查结果,结果.*
FROM
(
SELECT
(CASE WHEN 性别<>'M' THEN 'KO1' ELSE 'OK1' END) AS 条件1,
(CASE WHEN 年龄 NOT BETWEEN 10 AND 20 THEN 'KO2' ELSE 'OK2' END) AS 条件2
(CASE WHEN 名额=0 THEN 'KO3' ELSE 'OK3' END) AS 条件3
(CASE WHEN 报名时间>今天时间 THEN 'KO4' ELSE 'OK4' END) AS条件4
FROM 表格
) AS 结果
这样写不晓得你看得懂吗?
就是利用CASE WHEN来把条件归类,外面再包一层查询
随手打的,可能语法有误,也请指正~
※ 引述《boboptt (boboptt)》之铭言:
: 假设有个赛事user要符合4个条件才能参赛
: 1.性别:男生
: 2.年龄:10~20岁
: 3.报名人数尚未额满
: 4.报名时间尚未截止
: -----------------------------------------------
: 现在遇到一个问题,假如我将这4个条件SQL下在一起
: 虽然可以过滤出user是否具有参赛资格
: 但是遇到其中有资格不符的项目,却没有办法告诉user是哪个条件不符
: 我该怎麽写才能让user知道是哪几项资格不符呢?
: 是要将条件分作4次SQL来写吗?
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.233.150.227