簡體   English   中英

我可以使用SQL同時計算行數和獲取列值嗎?

[英]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.

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