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