从db加入两个字符串

时间:2012-01-17 13:51:04

标签: mysql

我已经产生了以下查询。

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。正如您所看到的,我正在尝试检查关键字是否位于其中任何一列中。我也尝试将它们组合成一个完整的名称,并检查这是否也是搜索词。

我收到错误,所以我可以假设这不是这样做的方式!!

有人可以提供帮助:)

由于

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

...
OR CONCAT(dp.first_name, dp.surname) LIKE '%{$keyword[$i]}%'

答案 2 :(得分: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], '%'))
      )

<强>更新

因为你正在抄写这个名字,你可以这样:

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