[英]Can I count rows and get a column value at the same time with SQL?
我正在使用SELECT COUNT(*)
來驗證用戶是否存在PHP PDO和MySQL。 我還想獲得一個特定的列值。 每個用戶只有一個價值/行,或者沒有價值/行。
我正在嘗試做這樣的事情:
$stmt = $link->prepare('SELECT COUNT(*) AND column FROM table WHERE user=:user');
我希望得到的是1和列值。 然后,我可以在其中將列值綁定到變量。
如果沒有,我將必須先執行SELECT COUNT(*)
然后在驗證用戶和SELECT COUNT(*)
查詢中的此列是否存在之后,再執行另一個查詢以獲取列名。
您只需要考慮一下。
“ count(*)”不是“驗證用戶存在”的特殊方法。 這只是選擇計數的查詢,因為您根本不知道選擇其他什么。
但是,只要您有一列可供選擇,就不需要計數了。
因此,只需選擇您的值,只要您能獲得它,就可以說出一個用戶存在
$stmt = $link->prepare('SELECT column FROM table WHERE user=:user');
$stmt->execute([$user]);
$col = $stmt->fetchColumn();
if ($col) {
// user exists
$something = $col; // use $col as you wanted
}
在選擇count()和沒有group by運算符的列時,這是一個棘手的查詢,通常應避免使用它。
SELECT count(*), column FROM table where user=:user
這是你想要的嗎?
否則,您可以在php中計算結果數
$pdo = new PDO('mysql:host=XXX.fr.mysql;dbname=YYYY', 'ZZZ', 'TTT', $pdo_options);
$response = $pdo->query('SELECT column FROM table');
$count = 0;
while ($data = $response->fetch())
{
$count++;
}
$reponse->closeCursor();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.