sql >> Database >  >> RDS >> Mysql

Hoe ongewenste voorlooptekens uit een string in MySQL te verwijderen

Probleem:

U wilt een reeks tekens aan het begin van een tekenreeks verwijderen.

Voorbeeld:

Onze database heeft een tabel met de naam product met gegevens in drie kolommen:id , naam , en model .

id naam model
1 kijken Lx0A123
2 smartwatch Lx0W34
3 klokfoto Lx0G100

Laten we de modelcode van elk nieuw product inkorten en de onnodige tekens (Lx0) aan het begin verwijderen.

Oplossing 1:

We gebruiken de TRIM() functie. Dit is de vraag die je zou schrijven:

SELECT name, 
  TRIM(LEADING 'Lx0' FROM model ) AS new_model_code
FROM product;

Dit is het resultaat:

naam nieuwe_model_code
kijk A123
smartwatch W34
klok foto G100

Discussie:

Gebruik de TRIM() functie met de LEADING trefwoord om tekens aan het begin van een tekenreeks te verwijderen. Met TRIM() kunt u specifieke tekens of spatie(s) aan het begin, einde of beide uiteinden van een tekenreeks verwijderen. Deze functie heeft de volgende argumenten:

  • Een optioneel trefwoord dat de uiteinden specificeert die moeten worden bijgesneden. Standaard is dit BOTH , maar u kunt LEADING definiëren (verwijderen van begin) of TRAILING (verwijder van einde).
  • Een tekenreeks die het teken/de tekens/spatie(s) definieert die u uit de tekenreeks wilt verwijderen (in ons voorbeeld de reeks 'Lx0').
  • De FROM zoekwoord.
  • De tekenreeks/kolomnaam die moet worden bijgesneden (in ons voorbeeld het model kolom).

In ons voorbeeld ziet dit er als volgt uit:

TRIM(LEADING 'Lx0' FROM model)

  1. Het kolomgegevenstype wijzigen van teken in numeriek in PostgreSQL 8.4

  2. NLS_COLLATION_NAME() Functie in Oracle

  3. MySQL OP DUPLICATE KEY - laatste invoeg-ID?

  4. onvolledige informatie van zoekopdracht op pg_views