![](/img/trans.png)
[英]mysql count number of rows with completed columns and also count the number of rows with incomplete columns?
[英]Count number of rows of specific mysql columns that are not empty
我有一个带有x个列的mysql表。 我想检查特定列的行是否为空..
目前我有:
$query10 ("SELECT count(*) FROM content WHERE linkname IS NOT NULL") or die(mysql_error());
$result10 = mysql_query($query10);
$row10 = mysql_fetch_assoc($query10);
echo $row10['0'];
但是我得到一个错误:
致命错误:函数名称必须是第227行上的...中的字符串
在使用num_rows ..之前,我从未使用过count,但似乎也无法使用它。
因此,为了清楚起见,我的桌子看起来像
| column1 | column2 | column3 |
--------------------------------------------
| a | b | |
---------------------------------------------
| a2 | b2 | c2 |
----------------------------------------------
| a3 | b3 | |
我要对不为空的column3的所有行进行计数,因此在这种情况下count的结果应为1。
计数产生以下错误:
mysql_fetch_assoc()期望参数1为资源,给定字符串
非常感谢
您需要使用IS NOT NULL
<> ''
SELECT count(*) FROM content WHERE linkname <> ''
正如Murtaza Bhurgri所说的那样, $query10 ("SELECT count(*) FROM content WHERE linkname IS NOT NULL") or die(mysql_error());
这肯定会带来错误。 它应该像
$query10 = "SELECT count(*) FROM content WHERE linkname <> ''";
$result10 = mysql_query( $query10 );
if ( !$result10 ) {
die( 'Invalid query: ' . mysql_error() );
}
$row10 = mysql_fetch_assoc($result10);
echo $row10[0];
我想出了这个,它的工作原理是:
$query10 = "SELECT count(*) as total FROM content WHERE linkname <> '' AND content.album_id = $album_id ";
$result10 = mysql_query( $query10 );
if ( !$result10 ) {
die( 'Invalid query: ' . mysql_error() );
}
$row10 = mysql_fetch_assoc($result10);
echo "zo veel:".$row10[total];
我添加了“ content.album_id = $ album_id”,因为我只希望针对更具体的列
很抱歉,处于不推荐使用的模式..
mysql_connect('localhost', 'root', 'password');
mysql_select_db('database');
$query10 = "SELECT COUNT(linkname) AS linkname_rows_count FROM tbl WHERE linkname != '' AND linkname IS NOT NULL";
$result10 = mysql_query($query10);
if(isset($result10)) {
$row10 = mysql_fetch_assoc($result10);
echo $row10['linkname_rows_count'];
}
您提到的特定列中的行可能包含空字符串或null
值。 您使用的查询仅检查null
值。 此外,每当将COUNT
函数与传入其参数的列一起使用时,都应为其分配别名以使result set
易于处理。
另外,您的代码使用不建议使用的mysql
扩展。 您需要迁移到mysqli
或PDO
以保护代码免受SQL Injection
等攻击。 因此,我还为您提供了使用mysqli
函数编写的替代代码。
$con = mysqli_connect('localhost', 'root', 'password', 'database');
$sql = "SELECT COUNT(linkname) AS linkname_rows_count FROM tbl WHERE linkname != '' AND linkname IS NOT NULL";
$query = mysqli_query($con, $sql);
if(isset($query)) {
$result = mysqli_fetch_assoc($query);
echo $result['linkname_rows_count'];
}
希望能帮助到你!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.