无法通过LIKE和INNER JOIN

时间:2019-01-18 10:40:39

标签: php sql

我正在使用php进行简单的搜索。我正在尝试使用INNER JOIN和LIKE显示2个表中的数据。使用关键字我需要检查关键字是否存在于表之一上。我的问题是它没有显示任何数据。

它还显示警告Notice: Trying to get property 'num_rows' of non-object

谢谢。

示例代码

$keyword = $_POST['keyword'];

        if($keyword != ""){

            $sql = "SELECT * FROM history_search INNER JOIN history_subs ON history_search.keyword = history_subs.keyword WHERE keyword LIKE '%$keyword%'";

        $result = $conn->query($sql);

        if ($result->num_rows > 0) {
            // output data of each row
            while($row = $result->fetch_assoc()) {
                echo $row['keyword'];
            }
        } else {
            echo "0 results";
        }
        }

2 个答案:

答案 0 :(得分:1)

列名keyword在两个表中都显示不明确

尝试:

SELECT * 
FROM history_search 
INNER JOIN history_subs 
    ON history_search.keyword = history_subs.keyword 
WHERE history_search.keyword LIKE '%$keyword%' -- Added a table reference here

答案 1 :(得分:0)

也许是一个愚蠢的问题。但是,如果您在WHERE子句中使用LIKE,则关键字字段可以在整个字段中仅包含该关键字。但是,在您加入时,您将作为同一字段的完全匹配加入。

我要了解的是,如果您有2个包含注释的关键字字段,那么为什么它们要完全匹配呢?如果删除where子句,则返回任何结果?

相关问题