2011-09-12 71 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