带有if语句的MySQL SELECT COUNT - 什么是最佳实践?

时间:2013-01-03 03:17:08

标签: php mysql if-statement count

我的结果与我这样做的结果不一致所以我想我会问这些天才你的想法。这就是我正在做的......

$ccquerycount = "SELECT COUNT(*) as `count` FROM payments_cc_info WHERE user_id=$userid";
....
....
if ($row['count'] == "1") {
} else {
}

有没有更好的方法来设计if语句以获得一致的结果?

3 个答案:

答案 0 :(得分:0)

试试这个

  $ccquerycount = "SELECT * FROM payments_cc_info WHERE user_id=$userid";
    $result = mysql_query($ccquerycount)
    if (mysql_num_rows($result)==1) {
    } else {
    }

<强> mysql_num_rows() 获取结果中的行数

警告不推荐使用mysql_扩展名。相反,应该使用MySQLi或PDO_MySQL扩展。

答案 1 :(得分:0)

我假设您正在执行查询,检索结果集,获取行并在if语句之前提取值(如果没有,那么您可能需要先执行此操作!这是start for PHP-MySql

万一你已经这样做了,忘记在你的帖子中提到这一点(无辜直到被证实有罪,我总是说!! :)),那么当你得到的时候,你可以向我们提供更多有关不同数据集的数据吗?结果不一致?

答案 2 :(得分:0)

您还可以在mysql查询中添加if条件,如下所示。

SELECT 
   rating,
   trade_service_id,
   ifnull(round(sum(belonging_product_ratings.rating)/count(*),0),0) AS avg,
   count(*) AS count
FROM
   belonging_product_ratings WHERE trade_service_id != 0
GROUP BY
   belonging_product_ratings.trade_service_id

其他替代方案如下

select
   BelongingProductRating.*,
   User.*
from
   belonging_product_ratings AS BelongingProductRating
LEFT OUTER JOIN
   users AS User ON
   IF( BelongingProductRating.rated_user_id != '$userID', BelongingProductRating.rated_user_id, BelongingProductRating.user_id) = User.id

你可以说mysql查询中的条件是否与三元if相同 您也可以根据您的php变量设置查询。

我正在分享我最终的代码。 您需要做的就是根据您的表格字段和条件进行设置。 随便问。