【问题标题】:PHP mysqli query to check if a row exist [duplicate]PHP mysqli查询以检查行是否存在[重复]
【发布时间】:2011-07-13 14:39:59
【问题描述】:

我有一个 mysql 表,我想检查是否存在 columnA=$a 和 $columnB=$b 的行。我不需要从那里选择任何东西。什么应该是有效的查询?目前我正在这样做,

if ($stmt = mysqli->prepare("SELECT * FROM TABLE WHERE columnA=? && columnB= ? LIMIT 1")) {
    $stmt->bind_param("ss", $a, $b);
    $stmt->execute();
    $stmt->store_result();
    $count=$stmt->num_rows;
    $stmt->close();
    }
    return ($count > 0 ? true : false);

【问题讨论】:

    标签: php mysqli


    【解决方案1】:

    这是一种高效的查询,如果您想改进该查询,您应该只选择一列来加快查询速度。

    if ($stmt = mysqli->prepare("SELECT id FROM TABLE WHERE columnA=? && columnB= ? LIMIT 1")) {
    

    【讨论】:

      【解决方案2】:

      从行中只选择一个字段,而不是所有字段 (*)。即使您不使用它们,mysql 仍然必须从存储中获取它们并准备好传输。

      SELECT columnA FROM table WHERE ...
      

      否则,除了在列 A 和列 B 上放置索引以加快搜索速度之外,您无能为力。

      【讨论】:

        【解决方案3】:

        试试这个:

        if ($stmt = $mysqli->prepare("SELECT COUNT(*) FROM TABLE WHERE columnA=? && columnB=?")) {
            $stmt->bind_param("ss", $a, $b);
            $stmt->execute();
            $stmt->bind_result($count);
            $stmt->fetch();
            $stmt->close();
        }
        
        return ($count > 0 ? true : false);
        

        现在你应该可以完成它了

        【讨论】:

          猜你喜欢
          • 2023-03-31
          • 2014-02-11
          • 2014-03-15
          • 1970-01-01
          • 2011-02-21
          • 2010-12-28
          • 2015-04-29
          • 2019-12-11
          • 1970-01-01
          相关资源
          最近更新 更多