sql >> Database >  >> RDS >> Mysql

Waar clausule rijen filteren in MySQL

Deze tutorial maakt deel uit van de serie Learn Basic SQL Queries Using MySQL. In de vorige zelfstudie hebben we de SQL-query's besproken om de rijen op te halen of gegevens uit een tabel in MySQL te lezen. De opdracht SELECT retourneert alle rijen in een tabel, tenzij we de limiet specificeren zoals weergegeven in de vorige zelfstudievoorbeelden. In verschillende situaties moeten we de resulterende rijen filteren om ervoor te zorgen dat de beperkte rijen aan bepaalde voorwaarden voldoen. We kunnen de rijen filteren met behulp van de WHERE-component door de filtervoorwaarde op te geven. We kunnen ook meerdere voorwaarden specificeren met de trefwoorden AND, OR.

Waar clausule

De WAAR clausule kan worden gebruikt om gefilterde rijen uit een tabel te lezen op basis van de gegeven voorwaarden. Als u op afstand bent aangemeld bij de database, hebt u ook het SELECT-privilege voor de tabel nodig om de rijen uit een tabel te lezen.

# SELECT - Syntax - WHERE
SELECT column_1,column_2,... FROM table_name WHERE <single or multiple conditions>;

Uitleg zoekopdracht

Het MySQL-commando SELECT kan worden gebruikt om rijen of gegevens uit de opgegeven tabelnaam te lezen, waarbij de select-expressie en de naam van de tabel verplicht zijn.

We kunnen de resulterende queryset filteren die wordt geretourneerd door de selectiequery met behulp van de WHERE-component. We kunnen één of meerdere voorwaarden specificeren om de resultaten te filteren. De trefwoorden EN en OF kan worden gebruikt om meerdere voorwaarden toe te passen. We kunnen ook de trefwoorden IN . gebruiken en NIET IN om de kolomwaarden te beperken tot een reeks waarden.

Operators

We kunnen de onderstaande operators gebruiken om vergelijkingen uit te voeren terwijl we de filtervoorwaarden toepassen. De vergelijking wordt gedaan met behulp van de gegeven waarde en de waarden die zijn opgeslagen in de tabelkolom.

= Het kan worden gebruikt om te controleren of de waarden van de twee operanden gelijk zijn of niet.


!= Het controleert of de waarden van de twee operanden niet gelijk zijn.


> Het controleert of de waarde van de linker operand groter is dan de waarde van de rechter operand.


< Het controleert of de waarde van de linker operand kleiner is dan de waarde van de rechter operand.


>= Het controleert of de waarde van de linker operand groter is dan of gelijk is aan de waarde van de rechter operand.


<= Het controleert of de waarde van de linker operand kleiner is dan of gelijk is aan de waarde van de rechter operand.

Voorbeelden

Dit gedeelte bevat voorbeelden om gefilterde gegevens uit de tabel te lezen met behulp van de SELECT commando met de WHERE clausule. Gebruik de onderstaande query om de gebruikerstabel te maken met de kolommen id, voornaam en achternaam om gebruikersgegevens op te slaan.

# Create the User Table
CREATE TABLE `user` (
`user_id` bigint(20) NOT NULL,
`first_name` varchar(45),
`last_name` varchar(45)
);

De onderstaande query kan worden gebruikt om gegevens in de gebruikerstabel in te voegen.

# Insert Rows - All Columns
INSERT INTO `user` ( `user_id`, `first_name`, `last_name`) VALUES
( 1, 'John', 'Smith' ),
( 2, 'Rick', 'Jones' ),
( 3, 'Catherine', 'Ponting' ),
( 4, 'Harsh', 'Upadhyay' ),
( 5, 'Tajwinder', 'Singh' ),
( 6, 'Leo', NULL ),
( 7, 'Leo', 'Murphy' ),
( 8, 'Ram', 'Choudhary' ),
( 9, 'Nicole', NULL ),
( 10, 'Ram', 'Choudhary' );

De bovengenoemde zoekopdracht voegt 10 rijen in de tabel in met de id, voornaam en achternaam om 10 verschillende gebruikers te vertegenwoordigen.

Nu zullen we de gefilterde gegevens lezen die door ons in de gebruikerstabel zijn ingevoegd. Het kan worden gedaan met behulp van het SELECT-commando zoals hieronder getoond.

# Filter - WHERE - Read all rows having first name set to Leo
SELECT * FROM `user` WHERE `first_name` = 'Leo';

# Result
6 Leo
7 Leo Murphy


# Filter - WHERE - AND - Read all rows having first name set to Leo and last name set to Murphy
SELECT * FROM `user` WHERE `first_name` = 'Leo' AND `last_name` = 'Murphy';

# Result
7 Leo Murphy


# Filter - WHERE - IS NOT - Read all rows having last name without NULL values
SELECT * FROM `user` WHERE `last_name` IS NOT NULL;

# Result
1 John Smith
2 Rick Jones
3 Catherine Ponting
4 Harsh Upadhyay
5 Tajwinder Singh
7 Leo Murphy
8 Ram Choudhary
10 Ram Choudhary


# Filter - WHERE - OR, IN - Read all rows having first name is either John or Harsh
SELECT * FROM `user` WHERE `first_name` = 'John' OR `first_name` = 'Harsh';
SELECT * FROM `user` WHERE `first_name` IN ( 'John', 'Harsh' );

# Result
1 John Smith
4 Harsh Upadhyay

De bovengenoemde zoekopdrachten voeren verschillende filterbewerkingen uit op string waarden met behulp van enkele of meerdere voorwaarden. Zorg ervoor dat u de enkele aanhalingstekens gebruikt bij het toepassen van de filters voor kolommen met het gegevenstype string.

# Filter - WHERE - Read all rows having id lesser than 5
SELECT * FROM `user` WHERE `user_id` < 5;

# Result
1 John Smith
2 Rick Jones
3 Catherine Ponting
4 Harsh Upadhyay


# Filter - WHERE - LIMIT - Read all rows having id lesser than 5
SELECT * FROM `user` WHERE `user_id` < 5 LIMIT 2;

# Result
1 John Smith
2 Rick Jones


# Filter - WHERE - AND - Read all rows having id greater than 3 and lesser than 6
SELECT * FROM `user` WHERE `user_id` > 3 AND `user_id` < 6;

# Result
4 Harsh Upadhyay
5 Tajwinder Singh

Bovenstaande queries passen de voorwaarden voor numerieke datatypes toe. We kunnen ook de verschillende soorten waarden combineren, zoals hieronder weergegeven.

# Filter - WHERE - AND - Read all rows having first name set to Harsh, id greater than 2 and lesser than 5
SELECT * FROM `user` WHERE `first_name` = 'Harsh' AND `user_id` > 3 AND `user_id` < 6;

# Result
4 Harsh Upadhyay

Dit is hoe we de gefilterde gegevens kunnen lezen die zijn opgeslagen in de MySQL-tabellen met behulp van de WHERE-clausule.


  1. 10 feiten over het monitoren van databaseprestaties die u misschien zullen verbazen

  2. Is er een verschil tussen DECIMAAL en NUMERIEK in SQL Server?

  3. Hoe CHAR() werkt in MariaDB

  4. Fix "ERROR: elke BEHALVE query moet hetzelfde aantal kolommen hebben" in PostgreSQL