繁体   English   中英

MYSQL使用LIKE搜索具有不同列的多个表

[英]MYSQL Searching multiple tables with different columns using LIKE

我需要能够在多个表上进行搜索,并返回与搜索到的词相似的所有部分。 我的问题是表格具有不同数量的列。 他们确实有名称相似的列。 首先,PHP检查“ productnumber”表,以找到具有相似零件编号的所有零件。 然后,它在每个表中搜索以找到匹配的数字。

现在,如果在“组件”表中找到相似的零件,它将不会显示从适配器或连接器中找到的任何零件。 与其选择所有列而不是忽略搜索所有表,我想搜索在所有三个表中找到的这三个列,并返回在所有表中找到的结果:

part_num

图片

if(isset($_GET['num'])) {
$num = $_GET['num'];
$numresult = mysql_query("SELECT * FROM productnumber WHERE part_num LIKE '%$num%'");

  if ($numresult) {

    while ($row = mysql_fetch_array($numresult)) {

        if ($row["title"] == "connectors") {
            $numtitle = "connectors";
            $result = mysql_query("SELECT * FROM connectors WHERE part_num LIKE '%$num%'");
        }

        if ($row["title"] == "adapters") {
            $numtitle = "adapters";
            $result = mysql_query("SELECT * FROM adapters WHERE part_num LIKE '%$num%'");
        }

        if ($row["title"] == "components") {
            $numtitle = "components";
            $result = mysql_query("SELECT * FROM components WHERE part_num LIKE '%$num%'");
        }

    }

  }

}

关于我的问题的任何帮助将不胜感激:]

 while ($row = mysql_fetch_array($numresult)) {

        if ($row["title"] == "connectors") {
            $numtitle = "connectors";
            $result[] = mysql_query("SELECT * FROM connectors WHERE part_num LIKE '%$num%'");
        }

        if ($row["title"] == "adapters") {
            $numtitle = "adapters";
            $result[] = mysql_query("SELECT * FROM adapters WHERE part_num LIKE '%$num%'");
        }

        if ($row["title"] == "components") {
            $numtitle = "components";
            $result[] = mysql_query("SELECT * FROM components WHERE part_num LIKE '%$num%'");
        }

    }

您必须进行另一个循环才能从结果数组中检索数据

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM