2016-01-19 3 views
8

Ich habe eine MySQL-Tabelle wie unten. Ich möchte zählen, wie viele Reihen zwischen Beere und Erdbeere, in meinem Fall 2 Reihen zwischen diesen beiden Früchten. Wie kann ich das erreichen?ist es möglich zu zählen, wie viele Zeilen zwischen zwei Zeilen mysql?

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

+0

Können Sie uns Ihre MySQL-Abfrage zeigen? – Marinus

+0

'wählen Sie die Anzahl (ID) aus den Früchten mit der ID> (wählen Sie die ID aus den Früchten mit der Frucht = 'Beere') und ID <(wählen Sie die ID aus den Früchten, wo die Frucht = 'Erdbeere')' –

+2

bestellt von was? Anzeigenauftrag? Es gibt keine Garantie, dass mysql die Zeilen in der Reihenfolge zurückgibt, in der sie eingefügt wurden. – Cfreak

Antwort

4

Diese Abfrage in this-,

$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

Sie Abfrage ähnlich schreiben

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

hier ist die referenz SQL Between clause with strings columns

+0

Ihre Antwort ist sehr gut. Ich habe mich gewundert. Wie wäre es, wenn ich meine Tabelle ein wenig ändere, dass zwei Werte gleich sind. Was ist, wenn ID 2 eine Erdbeere ist, ID 5 eine Erdbeere? – conan

+2

FYI Dies ergibt den Zeilenunterschied, der sich aus einer alphabetischen Reihenfolge der Tabelle ergibt. –

+0

Shijin, danke. Ich werde es testen – conan

Verwandte Themen