2012-01-17 4 views
2

다음 쿼리를 생성했습니다.db에서 두 문자열을 함께 결합하십시오.

SELECT  t.id AS playerid, 
      dp.first_name, 
      dp.surname 
FROM   ".TBL_FOOT_CAREER_TEAMS." t 
    INNER JOIN ".TBL_FOOT_CAREER_DB_PLAYERS." dp 
    ON   dp.id = t.playerid 
WHERE  t.careerid = '$career' 
    AND  (dp.first_name LIKE '%{$keyword[$i]}%') 
    OR  (dp.surname LIKE '%{$keyword[$i]}%') 
    OR  (`dp.first_name + dp.surname` LIKE '%{$keyword[$i]}%') 

데이터베이스에는 두 개의 열이 있습니다. first_namesurname. 보시다시피, 키워드가 해당 열 중 하나에 있는지 확인하려고합니다. 나는 또한 그것들을 하나의 완전한 이름으로 만들고 그것이 검색 용어가 무엇인지를 확인한다.

나는이 방법을 사용하지 않는다고 가정 할 수 있으므로 오류가 발생했습니다 !!

사람은 조회에서 :)

감사

답변

0
SELECT t.id AS playerid, 
     dp.first_name, 
     dp.surname 
FROM ".TBL_FOOT_CAREER_TEAMS." t 
      INNER JOIN ".TBL_FOOT_CAREER_DB_PLAYERS." dp 
      ON dp.id = t.playerid 
WHERE (t.careerid = '$career') AND 
     (
     (dp.first_name LIKE concat('%', $keyword[$i], '%')) OR 
     (dp.surname LIKE concat('%', $keyword[$i], '%')) OR 
     (CONCAT(dp.first_name, ' ',dp.surname) LIKE concat('%', $keyword[$i], '%')) 
    ) 

UPDATE 당신이 이름을 concactenating 때문에

, 다음과 같이 할 수 있습니다.

SELECT t.id AS playerid, 
     dp.first_name, 
     dp.surname 
FROM ".TBL_FOOT_CAREER_TEAMS." t 
      INNER JOIN ".TBL_FOOT_CAREER_DB_PLAYERS." dp 
      ON dp.id = t.playerid 
WHERE (t.careerid = '$career') AND 
     ( 
     CONCAT(dp.first_name, ' ',dp.surname) LIKE concat('%', $keyword[$i], '%') 
    ) 
0
... 
OR CONCAT(dp.first_name, dp.surname) LIKE '%{$keyword[$i]}%' 
관련 문제