2011-07-26 22 views
0

私はこのような一つのテーブルがあります。比較2列

+---------+----------+ 
| column1 | column2 | 
+---------+----------+ 
| 100 | 50 | 
| 3 | 10 |   
| 7 |  7 | 
+---------+----------+ 

を私はcolumn1が小さい値を持っている行の数を数え、column1column2の間でデータを比較して、SQLステートメントを希望column2のそれよりも。おそらく、

のようなもの:この例では

$result="select * from table where column1 <= column2"; 
$a = mysql_num_rows ($result); 
echo $a; 

、それが一致する行に#2、#3を表す、私に2の結果を与えるだろう。

答えて

3
SELECT count(*) AS total_rows 
FROM table_with_data 
WHERE column1 <= column2 
1

このクエリを実行してみましたか?あなたの求める答えが出てくるようです。

$result = mysql_query("SELECT COUNT(*) AS `n` FROM `table` WHERE `column1` <= `column2`"); 
$row = mysql_fetch_assoc($result); 
echo $row[0]; 

$result = mysql_query("SELECT * FROM `table` WHERE `column1` <= `column2`"); 
echo mysql_num_rows($result); 

しかし、むしろ、その後のMySQLからすべてのデータを取得-事実の後にそれを数えるよりも、MySQLのからのカウントを取得するために、より効率的です