2011-09-12 70 views
0

我在搜索CONCAT值问题,
有没有使用“MySQL查询”或“PHP算法”的任何方式?
我的想法是,我有四列组合(concate)作为ID字段和名称字段。
使用此两场,actualy我必须使用搜索这两个场(ID和名称)

输入文本,我有这样的查询,但是,这并不工作(因为该行的:ID LIKE“% $搜索%”搜索CONCAT值

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

    from 
     employee 

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

你得到一个错误或者没有结果? – gbn

+0

@gbn ,,是我有错误信息:#1054 - 'where子句'中的未知列'id'..我认为你是对的,当应用WHERE子句时,“id”还没有准备好。我在MySQL查询非常新手:对 – bungdito

回答

2

“ID” 尚未编制然而,当WHERE子句应用于

因此,使用派生表:

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%' 
+0

+1 MySQL的也让列别名在'having'引用而不是'where' –

+0

作品对我来说,,许多感谢:) – bungdito