2012-01-17 3 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_name и surname. Как вы можете видеть, я пытаюсь проверить, находится ли ключевое слово в любом из этих столбцов. Я также пытаюсь сделать их одним полным именем и проверить, является ли это тем, что и есть.

У меня ошибка, поэтому я могу предположить, что это не так!

Может кто-то помочь :)

Благодаря

ответ

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]}%' 
Смежные вопросы