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