首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法在内部连接中使用LIKE获取数据

无法在内部连接中使用LIKE获取数据
EN

Stack Overflow用户
提问于 2019-01-18 10:40:38
回答 2查看 66关注 0票数 0

我正在使用php进行一个简单的搜索。我试图使用内部联接和类似的方式显示来自2个表的数据。使用关键字,我需要检查关键字是否存在于其中一个表上。我的问题是它没有显示任何数据。

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

谢谢。

示例代码

代码语言:javascript
运行
复制
$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";
        }
        }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-18 10:43:24

列名keyword在两个表中都是不明确的。

尝试:

代码语言:javascript
运行
复制
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
EN

Stack Overflow用户

发布于 2019-01-18 11:01:28

也许是个愚蠢的问题。但是,如果使用WHERE子句,则关键字字段可能只包含整个字段中的关键字。但是,在您的联接中,您是与同一字段完全匹配的联接。

我得到的是,如果你有两个关键字字段,其中包含注释-例如,那么他们为什么要加入一个完全匹配?如果删除where子句,那么是否返回任何结果?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54252252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档