簡體   English   中英

用值對MySQL行進行計數

[英]Count MySQL rows with values

我想計算MySQL數據庫中有兩個特定值的行。 我的桌子是這樣設置的:

|---------------------|
|         ids         |
|---------------------|
|source_id | target_id|
|----------|----------|
|        2 |         6|
|        2 |         6|
|        3 |         4|
|---------------------|

我想計算有多少行具有source_id = 2target_id = 6我嘗試了以下語句:

<?php
$prep_stmt = "SELECT source_id FROM ids WHERE source_id = 2 AND target_id = 6";
if (!$result = $mysqli->query($prep_stmt)) {
    die("Failed");
} else {
    $num_rows = $result->num_rows;
    echo $num_rows;
}
?>

但是,PHP文件在第三行之后停止運行。

SELECT COUNT(*) FROM ids WHERE source_id=2 AND target_id=6

您的代碼看起來有點怪異。 如果要使用准備好的語句,則工作方式完全不同:

<?php

$stmt = $mysqli->prepare("SELECT COUNT(*) FROM `ids` WHERE `source_id` = ? AND `target_id` = ?");
$stmt->bind_param("ii", $source_id, $target_id);
$stmt->execute();
$stmt->bind_result($count);
$stmt->fetch();
$stmt->close();
echo $count;

並且沒有准備好的陳述。

<?php

echo $mysqli->query("SELECT COUNT(*) FROM `ids` WHERE `source_id` = 2 AND `target_id` = 6");

最后一點,如果您在條件內指定任何東西 ,請務必將其括在方括號中:

<?php

function fn() {
  return "something";
}

if (($foo = fn())) {
  // The condition is true if $foo isset, or in other words not null after the function was called.
}

if (!($foo = fn())) {}

if (($foo = fn()) === null) {}

// ...
SELECT COUNT(*) FROM ids WHERE source_id = 2 AND target_id = 6";

將為您提供與您想要的條目相對應的條目數。

(它將給出一行加一列,其中包含與close對應的行數)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM