sql >> Database teknologi >  >> RDS >> SQLite

Få placeringen af ​​et tegn i en streng i SQLite med Instr()

I SQLite kan du bruge instr() funktion for at returnere positionen af ​​et givet tegn i en streng.

Funktionen returnerer kun positionen for den første forekomst af tegnet (hvis nogen).

Hvis tegnet ikke findes, returnerer det 0.

Hvis et af argumenterne er NULL, returnerer det NULL.

Sådan virker det

instr() funktion accepterer to argumenter. Det første argument er strengen, og det andet argument er det tegn, du ønsker at finde i den streng.

Hvis argumenterne begge er BLOB'er, returnerer det én mere end antallet af bytes før den første forekomst af det andet argument, eller 0, hvis det ikke forekommer nogen steder i det første argument.

Syntaksen ser sådan ud:

inst(X,Y)
  • X er strengen
  • Y er tegnet

Eksempel

Her er et eksempel til at demonstrere.

SELECT instr('Black cat', 'a');

Resultat:

3

Her ønskede jeg placeringen af ​​bogstavet a .

I dette tilfælde vises bogstavet to gange, og instr() returnerer placeringen af ​​den første forekomst.

Et databaseeksempel

I dette eksempel vil jeg bruge følgende tabel:

ProductId   ProductName    Price     
----------  -------------  ----------
1           Widget Holder  139.5     
2           Blue Widget    10.0      
3           Red Widget     10.0      
4           Green Widget   10.0      
5           Widget Stick   89.75     
6           Foo Cap        11.99     

Jeg vil søge i Produktnavn kolonne for et bogstav.

SELECT 
  ProductName,
  instr(ProductName, 'd') 
FROM Products;

Resultat:

ProductName    instr(ProductName, 'd')
-------------  -----------------------
Widget Holder  3                      
Blue Widget    8                      
Red Widget     3                      
Green Widget   9                      
Widget Stick   3                      
Foo Cap        0                               

Bemærk, at den sidste række ikke havde bogstavet og derfor 0 blev returneret for den række.

NULL-værdier

Som nævnt, hvis nogle af argumenterne er NULL, returneres NULL.

SELECT 
  instr(NULL, 'a'),
  instr('Black cat', NULL);

Resultat:

instr(NULL, 'a')  instr('Black cat', NULL)
----------------  ------------------------
                                          


  1. Hvordan får man en liste over MySQL-visninger?

  2. SQL Server 2017 Backup -3

  3. Sådan beskytter du din MySQL- eller MariaDB-database mod SQL-injektion:Første del

  4. Brug af ORDER BY og GROUP BY sammen