2012-01-17 18 views
2

次のクエリを生成しました。dbから2つの文字列を結合する

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]}%') 

データベースには2つの列があります。 first_nameおよびsurname。ご覧のとおり、キーワードがどちらかの列にあるかどうかを確認しようとしています。私はまた、それらを1つの完全な名前にしようとし、それが検索語が何であるかをチェックする。

私はエラーが発生しているので、これを行う方法ではないと思います!

誰かがあなたのクエリで:)

おかげ

答えて

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

をあなたはこのようにすることができます:

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]}%' 
関連する問題