0

PDO の fetchColumn() がクエリの SQL LIMIT 部分を無視するのはなぜですか?

データベースに 2 つのレコードが見つかった場合、$result は「2」を返しますか?

ありがとう!

$sql = "SELECT count(*) FROM table WHERE Username = ? and 
Password = ? LIMIT 1";

$q = $this->connection->prepare($sql);
$q->execute(array($user, $pwd));

$result = $q->fetchColumn();
echo $result;
4

1 に答える 1

1

データベースで見つかったレコード数のカウントは 2 かもしれませんが、その集約関数は結果を返すために 1 つの行しか必要としないためです。ここでの制限は実際には役に立ちません。

つまり、サーバーで LIMIT なしでそのクエリを実行すると、値が 2 の 1 行の結果セットが表示されます (テーブルにそのようなユーザー/パスワードの組み合わせが 2 つある場合)。

于 2012-07-26T13:55:47.267 に答える