2011-03-26 49 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%' ..)