搜索concat值

时间:2011-09-12 12:32:07

标签: php mysql

我在搜索concat值时遇到问题,
有什么方法可以使用“mysql查询”或“php算法”吗? 我的想法是,我有四列结合(连接)作为ID字段和NAME字段 使用这两个字段,实际上我有一个输入文本用于搜索这两个字段(ID和NAME)

我有这样的查询,但这不起作用(因为这一行: id像'%$ search%'

select
      concat(
         id_1, '.',
         id_2, '.',
         id_3, '.',
         id_4
      ) 
      as id,
      name

    from
      employee

    where
           id   like '%$search%'
      or   name like '%$search%'

1 个答案:

答案 0 :(得分:2)

当应用WHERE子句时,

“id”尚未准备好

所以使用派生表:

select
    id, name
FROM
    (
    select
      concat(
         id_1, '.',
         id_2, '.',
         id_3, '.',
         id_4
      ) 
      as id,
      name
    from
      employee
    ) as intermediate
    where
           id   like '%$search%'
      or   name like '%$search%'

或重复表达

select
  concat(
     id_1, '.',
     id_2, '.',
     id_3, '.',
     id_4
  ) 
  as id,
  name
from
  employee
where
  concat(
     id_1, '.',
     id_2, '.',
     id_3, '.',
     id_4
  ) like '%$search%'
  or   name like '%$search%'