MySQLi Select-Variationen

Weitere Möglichkeiten mit Select

In den vorherigen Artikeln haben wir verschiedene Wege besprochen, wie man mit dem select-Befehl MySQLi-Datentabellen abfragen kann. Neben der simplen select-Abfrage für alle Datensätze waren dies die Filteroption mit "where", das Vermeiden doppelter Ergebnisse durch "distinct", das Einschränken der Menge durch "limit" oder das Sortieren durch "order by".

Dass man all diese Möglichkeiten auch kombinieren kann, haben wir uns auch schon angeschaut. Ein Beispiel sollte hier nochmals zur Veranschaulichung gezeigt werden.

select * from adressen where nachname='Bauer' order by plz asc

Hier werden alle Adressen herausgesucht, bei denen der Nachname exakt Bauer lautet und danach wird aufsteigend nach der Postleitzahl sortiert.

Verschiedene Varianten mit der select-Abfrage in MySQLi

Mit "and" haben wir auch schon gearbeitet, um zwei Filterargumente zu kombinieren und dazu sollten wir auch "or" besprechen. Natürlich wissen wir, dass "and" zu deutsch "und" heißt und "or" ist übersetzt "oder".

select * from adressen where nachname = 'Bauer' or vorname = 'Wolfgang'
select * from adressen where nachname = 'Bauer' and vorname = 'Wolfgang'

Beide Abfragen sehen sehr ähnlich aus, sind auch sehr ähnlich, aber eben nicht ganz. Während im ersten Beispiel durch die Verknüpfung mit "or" eine Oder-Situation entstanden ist, wird bei der zweiten eine Und-Situation geschaffen. Das bedeutet, dass beim ersten Beispiel es ausreicht, wenn der Nachname Bauer oder der Vorname Wolfgang lautet. Beim zweiten Beispiel müssen beide Kriterien zutreffen, dass der Datensatz ausgewählt wird.

select * from adressen where nachname = 'Bauer' and (vorname = 'Wolfgang' or vorname = 'Peter')

Hier werden "or" und "and" kombiniert. Auf jeden Fall muss Bauer als Nachname eingetragen sein. Außerdem muss der Vorname entweder Wolfgang oder Peter heißen. Beide Kombinationen sind möglich. Würde der Vorname aber Andreas lauten, bleibt der Datensatz unbeachtet. Auf diese Weise kann man viele verschiedene Abfragen verschachteln.

select * from adressen where plz > 1060 and plz < 1170
select * from adressen where plz between 1060 and 1170

Hier hat man eine Abfrage, bei der im ersten Fall mit den Größer- und Kleinerzeichen eine Auswahl gefällt wurde, die mit "and" verknüpft wird. Der zweite Fall erbringt das gleiche Ergebnis und zeigt ein neues Schlüsselwort - between, zu deutsch: zwischen.

$res = mysql_query("select * from adressen where plz = 1060 or plz = 1170");
$res = mysql_query("select * from adressen where plz in (1060, 1170)");

Die erste Abfrage ist eine klassische Oder-Situation, die man aber mit der zweiten Variante auch lösen kann. Hier ist wieder ein neues Schlüsselwort im Einsatz, nämlich "in". Between und "in" werden aber weniger häufig eingesetzt wie die Verbindung von or und and, vermutlich auch deshalb, weil diese klarer sind und sich durchgesetzt haben. Technisch sind beide Wege denkbar.

Lesen Sie auch

MySQLi basiert auf SQL und daher gibt es gar nicht so viele Befehle wie etwa in einer richtigen Programmiersprache, aber es gibt zu den Befehlen viele Zusätze, speziell bei der Abfrage mit select. Es gibt aber auch Befehle, die man kaum braucht und dazu gehört create zum Anlegen von Datenbanken und Datentabellen oder drop zum Löschen selbiger. Auch alter als Befehl zum Ändern wird selten benötigt.

Dann gibt es Anordnungen, die man sehr oft oder gelegentlich braucht, ganz nach Situation. Mit delete kann man Datensätze löschen und das ist in einem Skript immer wieder der Fall, etwa alte Statistikdaten. Und mit insert kann man neue Datensätze anlegen, zum Beispiel nach dem Eintragen im Geästebuch.

Der große Akteur auf Ebene der MySQLi-Datenbank auch von PHP aus ist der Befehl select. Er dient dazu, die vorhandenen Daten zu untersuchen und es gibt eine ganze Reihe an Möglichkeiten, wie dies erfolgen kann. Mit Filter, mit Begrenzungen oder auch mit verknüpften Kriterien, um die richtigen Datensätze zu finden. Selbst rechnen ist damit möglich.

Diesen Artikel teilen

Kategorien

Grundlagen
HTML-Grundlagen
CSS-Grundlagen
Javascript-Grundlagen
PHP-Grundlagen
MySQL-Grundlagen
SEO-Grundlagen

Infos, Tipps, Vermarktung
Webdesign-Lexikon
Online-Werbung
PHP-Codeschnipsel