Re: [請益] 如何判斷user是否有資格參加某個賽事
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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章