2016-01-19 1 views
8

私は以下のようなmysqlテーブルを持っています。私はベリーとイチゴの間の行数をカウントしたいと思います。私の場合、これらの2つの果実の間に2行あります。それをどうすれば実現できますか?は、2行の間にいくつの行をカウントすることが可能ですmysql?

id fruit 
 
1  apple 
 
2  berry 
 
3  banana 
 
4  pineapple 
 
5  strawberry

+0

mysqlクエリを表示できますか? – Marinus

+0

'果物からのselect count(id)id>(fruit = 'berry'の果物からのIDの選択)およびid <(fruitの 'strawberry'という果物からのIDの選択) ' –

+2

何によって注文されますか?挿入の順序? mysqlが挿入された順に行を返すという保証はありません。 – Cfreak

答えて

4

このクエリを試してみてくださいです

$sql = "SELECT COUNT(*) as total_count FROM table_name JOIN (SELECT MAX(id) as 
    maxid,MIN(id) as minid FROM `table_name` WHERE fruit = 'berry' OR 
    fruit= 'strawberry') as temp ON table_name.id > temp.minid AND 
    table_name.id<temp.maxid"; 
1

あなたがここに

$sql = select * from table where fruit between 'berry' and 'strawberry'; 
$result = mysql_query($sql); 
$rows = mysql_num_rows($result); 

をthis-するクエリと同様の書くことができますが、reference- SQL Between clause with strings columns

+0

あなたの答えはとても良いです。私は考えていた。私はテーブルを少し変えて、2つの値が同じではいかがですか? ID2がイチゴ、ID5がイチゴの場合はどうなりますか? – conan

+2

FYIこれは、テーブルのアルファベット順による行の違いを示します。 –

+0

Shijin、ありがとう。私はそれをテストします – conan

関連する問題