2011-03-26 57 views
0

我想查看搜索文本是否位於表格的任何字段中,但我需要將其添加到已存在的WHERE子句中。從PHP的MySQL語句中檢查不同的字段

SELECT * FROM table WHERE name = 'test' AND email = '[email protected]' 

我需要在這個額外條款的末尾添加檢查:

AND name LIKE '%{$search_text}%' OR email LIKE '%{$search_text}%' 

有人可以幫我寫了這一點,正常嗎?

此外,如果有一種方法使用sql來檢查該表的所有字段,以查看搜索文本是否在連續的任何位置,那會更好。

+0

全文搜索可能是一個好主意。 – 2011-03-26 04:04:18

+0

不清楚,除非您的意思是否,否則名稱\電子郵件是已知值並進行搜索的是什麼? – 2011-03-26 04:05:52

+0

不確定全文搜索的含義,是的,它是mysql – tmartin314 2011-03-26 04:06:09

回答

0

這聽起來像你正在尋找類似繼「OR」關鍵字這

SELECT * 
FROM table 
WHERE (name = 'test' AND 
     email = '[email protected]') 
    OR (name LIKE '%{$search_text}%') 
    OR (email LIKE '%{$search_text}%') 

搜索與一個通配符開始,喜歡的人,可能會無法使用索引。預計大型表的性能會降低。

0

您不能使用簡單的條件搜索mysql行中的所有字段。你只能用類似的語法來做到這一點。

 
OR (name LIKE '%text%' OR fullname LIKE '%text%' ..)