MYSQL搜索使用LIKE不同列的多个表(MYSQL Searching multiple tabl

2019-09-28 17:20发布

我需要能够做到在多个表的搜索和返回类似于搜索项的所有部分。 我的问题是,该表有不同数量的列。 他们也有类似名称的列虽然。 首先,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%'");
        }

    }

  }

}

所有关于我的问题的帮助将不胜感激:]

Answer 1:

 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%'");
        }

    }

你必须做出另一个循环来检索结果数组数据



文章来源: MYSQL Searching multiple tables with different columns using LIKE