MySQL PHP搜索多LPE字段

MySQL PHP搜索多LPE字段,mysql,search,Mysql,Search,我在我的网站上有一个搜索框,它运行良好,但我希望它搜索表中的多个字段。例如,我在表中有3个部分用于标记为text1、text2和text3的文本。下面的代码适用于搜索单个字段,但它不适用于所有3个字段 $sqlcommand = "SELECT id, page_title, url, text1, text2, text3 FROM pages WHERE text1 LIKE '%$searchquery%'"; 我试着把它改成 $sqlcommand =

我在我的网站上有一个搜索框,它运行良好,但我希望它搜索表中的多个字段。例如,我在表中有3个部分用于标记为text1、text2和text3的文本。下面的代码适用于搜索单个字段,但它不适用于所有3个字段

        $sqlcommand = "SELECT id, page_title, url, text1, text2, text3 FROM pages WHERE text1 LIKE '%$searchquery%'";
我试着把它改成

        $sqlcommand = "SELECT id, page_title, url, text1, text2, text3 FROM pages WHERE text1, text2, text3 LIKE '%$searchquery%'";
但这并没有产生结果,我已经尝试过了

        $sqlcommand = "SELECT id, page_title, url, text1, text2, text3 FROM pages WHERE (text1, text2, text3) LIKE '%$searchquery%'";
这是别人建议的,但这产生了一个错误

得到了感激的帮助


理查德

你可以试着把他们联系在一起:

    $sqlcommand = "SELECT id, page_title, url, text1, text2, text3
                   FROM pages
                   WHERE concat(text1, ':', text2, ':', text3) LIKE '%$searchquery%'";
我还包含了一个分隔符,因此搜索查询应该只匹配一个字段

$sqlcommand = "
    SELECT id, page_title, url, text1, text2, text3 
    FROM pages 
    WHERE text1 LIKE '%$searchquery%' OR text2 LIKE '%$searchquery%' OR text3 LIKE '%$searchquery%'
";

^这行吗?

要搜索表中的多个列,请确保WHERE子句中引用了所有列,并用运算符和分隔,如下所示:

select id, page_title, url, text1, text2, text3 FROM pages WHERE text1 LIKE '%searchfield1%' AND text2 LIKE '%searchfield2%' AND text3 LIKE '%searchfield3%' 选择id、页面标题、url、text1、text2、text3 从页数 其中text1类似于“%searchfield1%” 和文本2,如“%searchfield2%” 和文本3,如“%searchfield3%” 当然,您需要将此查询放在php格式的脚本中,可能如下所示:

$sqlcommand=“……”;就像你在问题中说的那样

或者,如果要在同一输入字段上搜索所有三列,可以使用:

select id, page_title, url, text1, text2, text3 FROM pages WHERE text1 LIKE '%searchquery%' AND text2 LIKE '%searchquery%' AND text3 LIKE '%searchquery%' 选择id、页面标题、url、text1、text2、text3 从页数 其中text1类似于“%searchquery%” 和文本2,如“%searchquery%” 和文本3,如“%searchquery%”