2013-01-22 37 views
0

如何在mysql語法中搜索多個列中的關鍵字?MYSQL,如何在多列中搜索關鍵字?

現在我有一個變量$phone,存儲的表單輸入,並使用語法在單個列搜索:

SELECT * FROM db.table WHERE 'phone1' = '".$phone."'; 

我怎麼做,通過列「PHONE1」,'PHONE2的搜索, 'phone3'和'phone4'?

感謝

+1

我相信你已經相應消毒'$ phone',太? – BenM

回答

5

使用ORWHERE條款

SELECT * 
FROM db.table 
WHERE 'phone1' = '".$phone."' 
OR 'phone2' = '".$phone."' 
OR 'phone3' = '".$phone."' 
OR 'phone4' = '".$phone."' 
+0

但@WilliamdeCastro要小心'$ phone'是否包含字符串'''或1 = 1 - '' –

+2

是的,他們沒有顯示足夠的代碼來表明他們是否正在清理和/或轉義他們的數據,所以我沒有詳細說明。 –

+0

@lc $ pohne將永遠有一個簡單的數字字符串 –

1

爲什麼不試試in:=)

SELECT * 
FROM db.table 
WHERE '".$phone."' in (`phone1`, `phone3`, `phone3`, `phone4`) 
; 
+0

不知道它在性能方面有多合乎邏輯..經過測試的表格:(http://sqlfiddle.com/#!2/615bf/1)請爲downvotes留下評論,因爲'or'與'in'相同和'解釋計劃顯示相同' – bonCodigo

+0

這是,但是你應該使用backflicks而不是單引號字段名稱,並且你的引號中有不匹配的地方。 – BenM

+0

您的回答不正確,無法以當前形式進行工作,因此downvote。 – BenM