Как мне изменить оператор WHERE в SQL? - PullRequest
0 голосов
/ 02 мая 2011

Я пытаюсь изменить запрос, который позволит не только пользователю получать результаты, введя фамилию конкретного бойца, но и введя его имя.Как я могу изменить запрос ниже, чтобы выполнить это?

Вот код:

SELECT distinct
'${searchT}' searchalp,
(SELECT COUNT(fighterId) FROM tblFighter where fighter_lastName like '${searchT}%') totalresults,
A.FighterID, 
A.Fighter_FirstName, 
A.Fighter_NickName, 
if (A.Fighter_Height > 0, 
CONCAT(FLOOR(A.Fighter_Height/12), '\' ', MOD(A.Fighter_Height,12), '"'), '')     Fighter_Height_inch, 
A.Fighter_NormalWeight, 
if (A.Fighter_Reach > 0, CONCAT(ROUND(A.Fighter_Reach,0), '"') , '') Fighter_Reach, 
A.Fighter_Stance,
CONCAT('/fighter/',REPLACE(REPLACE(LCASE(A.Fighter_FirstName),'  ','-'),'.',''),'/',REPLACE(LCASE(A.Fighter_LastName),' ','-'),'/',A.FighterID,'/')  fighterURL,
(select count(*) from tblFight_Fighter where FighterID = A.FighterID and OutcomeID  = 1) fighterCareerWins, (select count(*) from tblFight_Fighter where FighterID = A.FighterID and OutcomeID  = 2) fighterCareerLosses, (select count(*) from tblFight_Fighter where FighterID = A.FighterID and OutcomeID  = 3) fighterCareerDraws,
fighter_lastName, FA.AccoladeDescription FROM tblFighter as A LEFT JOIN (SELECT FighterId, AccoladeDescription, AccoladeType
  FROM tblAccolade 
  JOIN tblEvent USING(EventID)
  JOIN (SELECT AccoladeID, Max(Event_Date) as MaxAccDate 
          FROM tblAccolade 
          JOIN tblEvent ON tblAccolade.EventID = tblEvent.EventID  
         WHERE AccoladeType = 'Belt' AND AccoladeDescription not like 'WEC%'
        GROUP BY AccoladeID) as tmpMaxAccDate ON tblAccolade.AccoladeID = tmpMaxAccDate.AccoladeID 


 WHERE Event_Date = MaxAccDate) as FA ON FA.FighterId = A.FighterId and FA.AccoladeType = 'Belt'  where A.fighter_lastName like '${searchT}%' order by A.fighter_lastName ASC LIMIT ${stInd}, ${lstInd}

1 Ответ

1 голос
/ 02 мая 2011

Что-то вроде where A.fighter_lastName like '${searchT}%' and A.fighter_firstName like '${searchU}%' должно это сделать.Если одна или другая строка пуста, тогда поиск будет осуществляться исключительно по другой строке.

...