thinkphp5.1 ist derzeit eines der beliebtesten PHP-Entwicklungsframeworks. Es bietet leistungsstarke Abfragefunktionen und kann zur Durchführung verschiedener komplexer Vorgänge in der Datenbank verwendet werden. Im tatsächlichen Entwicklungsprozess stoßen wir häufig auf Situationen, in denen wir abfragen müssen, ob der Wert nicht einem bestimmten Wert entspricht. In diesem Artikel wird detailliert beschrieben, wie eine Ungleichheitsabfrage in thinkphp5.1 durchgeführt wird.
Wir müssen zunächst den Abfrage-Builder von thinkphp5.1 verstehen, der SQL-Abfrageanweisungen durch Kettenaufrufmethoden erstellt. Beispielsweise können wir den folgenden Code verwenden, um den Datensatz mit der ID 1 in der Tabelle abzufragen:
$user = Db::name('user')->where('id', 1)->find();
Hier bedeutet Db::name('user') die Bedienung der Benutzertabelle, where(' id', 1) bedeutet, den Datensatz mit id=1 abzufragen, und find() bedeutet, einen Datensatz zu finden und zurückzugeben. Dies ist ein einfaches Abfragebeispiel, aber in tatsächlichen Anwendungen müssen wir einige Datensätze abfragen, die nicht einem bestimmten Wert entsprechen.
Zunächst können wir mit der notEq-Methode Datensätze abfragen, die nicht einem bestimmten Wert entsprechen. Das Folgende ist ein Beispiel:
$users = Db::name('user')->where('status', '<>', 1)->select();
Hier fragt die notEq-Methode alle Datensätze ab, deren Status nicht gleich 1 ist. Wenn wir Datensätze mit einer ID ungleich 1 abfragen möchten, können wir den folgenden Code verwenden:
$users = Db::name('user')->where('id', '<>', 1)->select();
In der where-Methode können wir andere Vergleichsoperatoren verwenden, wie zum Beispiel: >, <, >= , <= und so weiter. Wenn wir alle Datensätze abfragen möchten, deren Status ungleich 1 und 2 ist, können wir den folgenden Code verwenden:
$users = Db::name('user')->where('status', 'not in', [1, 2])->select();
Hier bedeutet „nicht in“ einen Wert, der nicht zwischen [1, 2 liegt ]. Wir können auch andere Vergleichsoperatoren verwenden, z. B. in, between, not between usw.
Wenn wir Datensätze mit leerem Status abfragen möchten, können wir den folgenden Code verwenden:
$users = Db::name('user')->where('status', 'NULL')->select();
Beachten Sie, dass „NULL“ hier eine Zeichenfolge ist, die einen NULL-Wert angibt. Ebenso können wir auch Nicht-Null-Werte abfragen, zum Beispiel:
$users = Db::name('user')->where('status', 'NOT NULL')->select();
Zusätzlich zur Where-Methode können wir auch die WhereRaw-Methode verwenden, um Datensätze abzufragen, die nicht einem bestimmten Wert entsprechen. Hier ist ein Beispiel:
$users = Db::name('user')->whereRaw('status <> 1')->select();
Hier ermöglicht uns die Methode whereRaw, das Ungleichheitssymbol (<>) direkt in der SQL-Anweisung zu verwenden.
Schließlich können wir auch Abschlussfunktionen verwenden, um Abfragebedingungen zu erstellen. Das Folgende ist ein Beispiel:
$users = Db::name('user')->where(function($query){ $query->where('status', '<>', 1) ->whereOr('name', '<>', 'admin'); })->select();
Hier sorgt die Methode where in der Abschlussfunktion dafür, dass die Abfrage nicht gleich dem Datensatz mit dem Status 1 ist, und die Methode whereOr fragt nicht gleich dem Datensatz namens admin ab.
Zusammenfassend können wir zum Abfragen von Datensätzen, die nicht einem bestimmten Wert in thinkphp5.1 entsprechen, die notEq-Methode, die where-Methode, die whereRaw-Methode, die Abschlussfunktion und andere Methoden verwenden. Es ist notwendig, die geeignete Methode entsprechend der tatsächlichen Situation auszuwählen. Wenn Sie während der Entwicklung Fragen haben, können Sie sich auf die offizielle Dokumentation von thinkphp5.1 beziehen oder sich an Entwicklungsgemeinschaften rund um thinkphp5.1 beteiligen, um weitere Hilfe und Unterstützung zu erhalten.
Das obige ist der detaillierte Inhalt vonthinkphp5.1-Abfrage ist nicht gleich. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!