2009-05-27 13 views
1

in mysql, wie zählen Sie die nicht leeren Zellen in einer Zeile? Und ich möchte die Zellen nur zwischen bestimmten Spalten zählen, sagen wir zwischen den Spalten 3-10. nicht alle Spalten ... wieder, nur in dieser Reihe.mysql query

Antwort

1

Spalten können nur in SQL mit Namen nicht Zahlen angegangen werden, wenn Sie dies tun wollen, werden Sie es in einer Programmiersprache zu tun haben, die die Abfrage

0

Theoretisch ruft, Attribute eines relvar ungeordnet sind und daher sollte das nicht möglich sein. Ich glaube jedoch, dass Sie in MySQL den Katalog abfragen können, um die Namen und auch die 'Reihenfolge' von Spalten einer Tabelle zu erhalten. Sie können die Spaltennamen und Reihenfolge wie folgt erhalten:

select column_name, ordinal_position from information_schema.columns where table_name='my_table'; 

Allerdings bezweifle ich, dass dies Ihnen zu viel hilft. Was Sie tun, riecht nach schlechtem Datenbankdesign und wenn Sie nichts gegen das Design tun können, was leider manchmal passiert, können Sie die Zeilen aus Ihrer Tabelle in einer Programmiersprache, z. PHP, und verwenden Sie dann Schleifen, um die nicht leeren Zellen in den von Ihnen gewünschten Zellen 'manuell' zu zählen. Sie können die Zeilen in ein Array abrufen und dann auf einzelne Zellen zugreifen, indem Sie den Array-Index angeben.

Wenn Sie es so glücklich machen, warum nicht? Es sollte definitiv nicht zu schwierig sein.