Mysql i spørring

Mysql i spørring
I databasens verden er spørsmål en av de konstante tingene vi alle implementerer. Selv om SQL har måter og konvensjoner for å utføre spesifikke spørsmål, krever det noen ganger oss å sette tilpassede forhold.

En av de populære og nyttige betingede operatørene i SQL er in -operatøren. Ved å bruke i operatøren kan vi få en boolsk verdi hvis en spesifikk verdi er i en liste.

Denne opplæringen vil lede deg gjennom operatøren og hvordan du bruker den til å lage tilpassede forhold for SQL -spørsmål.
Før vi begynner, antar vi at du har en MySQL -server installert og konfigurert på systemet ditt, og du har en eksempeldatabase som du skal jobbe med.

For å få en eksemplerversjon av en MySQL -database, bør du vurdere Sakila -databasen fra ressursen som er gitt nedenfor:

https: // dev.mysql.com/doc/indeks-annet.html

Grunnleggende bruk

Hvis du ikke er kjent, lar MySQL i uttalelsen deg avgjøre om en verdi er innenfor et sett med verdier. Det returnerer hovedsakelig en boolsklignende verdi med 1 (sant) hvis verdien er i settet og 0 (falsk) hvis verdien ikke er i settet.

Den generelle syntaksen til uttalelsen er:

Velg kolonne_navn fra tabell_navn hvor (uttrykk | kolonne_navn) i (“Value1, Value2…)

Som du kan se fra syntaks ovenfor, er listen over verdier atskilt med komma inne i In -operatøren.

Du kan bruke enten et uttrykk eller et kolonnenavn med i operatøren inne i hvor uttalelsen.

MERK: Unngå å kombinere siterte verdier som strenger og uanstente verdier som tall siden sammenligningen er forskjellig for forskjellige typer. Et eksempel på ugyldig bruk av i spørringen vises nedenfor:

Velg kolonne_navn fra tabell_navn hvor verdi1 i (“a”, 10, 10);

Når en spørring som den ovenfor er utført:

  1. Verdiene blir evaluert basert på typen av den spesifiserte kolonnen eller ekspresjonsresultatet.
  2. Deretter blir verdiene sortert, og til slutt fullføres et søk ved hjelp av et binært søk. Dette sikrer at søket er raskt med minimale feil.

Nullverdier returnerer en nullverdi.

Eksempel Bruk sak

La oss illustrere hvordan vi bruker i operatøren ved å bruke eksempler.

La oss starte med en enkel sammenligning som ikke krever en database. Tenk på følgende uttalelse:

Velg 10 in (5, 15, 25, 35);

Hvis du utfører spørringen ovenfor i et MySQL -skall, vil du få 0 (falsk), noe som indikerer at verdien 10 ikke er i det medfølgende settet med verdier.

mysql> velg 10 in (5, 15, 25, 35);
+-----------------------+
| 10 in (5, 15, 25, 35) |
+-----------------------+
| 0 |
+-----------------------+
1 rad i sett (0.00 sek)

Saken er også sant hvis verdien vi leter etter er i settet. I dette tilfellet returneres en 1 (sann) som illustrert i spørringen nedenfor:

Velg 35 in (5, 15,25,35);

Utgangen vil være som vist nedenfor:

mysql> velg 35 in (5, 15,25,35);
+---------------------+
| 35 in (5, 15,25,35) |
+---------------------+
| 1 |
+---------------------+
1 rad i sett (0.00 sek)

Anta at du har en tabell som heter Film (se Sakila -databasen) med rader som vist nedenfor:

+----------------------+
| Felt |
+----------------------+
| FILM_ID |
| tittel |
| beskrivelse |
| Release_year |
| språk_id |
| original_language_id |
| Rental_duration |
| Rental_rate |
| lengde |
| erstatning_cost |
| Rating |
| SPESIAL_FECTURES |
| last_update |
+----------------------+

Vi bruker In -operatøren for å finne ut titlene som har en leievarighet på 3, som vist i spørringen nedenfor:

Velg Film_id, tittel, Rental_duration, Rating fra Film hvor Rental_Duration i (3) begrenser 5;

Når spørringen ovenfor er utført, vil du få alle filmene (begrenset til 5) der Rental_duration er lik 3. Her er prøveutgangen, som vist nedenfor:

MySQL> Select Film_id, Tittel, Rental_Duration, Rating from Film hvor Rental_Duration i (3) begrenser 5;
+---------+-----------------+-----------------+--------+
| FILM_ID | tittel | Rental_duration | Rating |
+---------+-----------------+-----------------+--------+
| 2 | Ace Goldfinger | 3 | PG-13 |
| 6 | Agent Truman | 3 | PG |
| 9 | Alabama Devil | 3 | PG-13 |
| 17 | Alene tur | 3 | R |
| 21 | Amerikansk sirkus | 3 | R |
+---------+-----------------+-----------------+--------+

Som du kan se fra eksemplet ovenfor, kan vi bruke in -operatøren til å tilpasse resultatet vårt.

Konklusjon

Denne opplæringen har vist deg hvordan du bruker og implementerer MySQL i operatøren for å få tilpassede resultater.