sql >> Database >  >> RDS >> Mysql

Query voor exacte overeenkomst van een string in SQL

Als ik de vraag goed begrijp, wil je 'diamant' gebruiken als het een apart woord is en geen deel uitmaakt van een ander woord, zoals 'diamondville'. Je zou iets kunnen doen als SELECT * FROM tproduct WHERE beschrijving zoals '% diamond%' en dit zou overeenkomen met alle records met "diamant" omgeven door spaties.

Maar dat zou niet werken. Dat zou geen records vinden waar de beschrijving begint met "Diamond" of waar een komma of punt staat na "Diamond"

Je moet matchen op een reguliere expressie. U kunt daarmee woordgrenzen opgeven:

select * from t2 where description regexp '[[:<:]]diamond[[:>:]]';

Zie deze pagina voor meer informatie over MySQL reguliere expressies:http:// dev.mysql.com/doc/refman/5.1/en/regexp.html



  1. PHP:als record bestaat, geef HTML weer, anders niets weergeven

  2. Hoe sql-mode=NO_ENGINE_SUBSTITUTION permanent te maken in MySQL my.cnf

  3. verschil tussen localhost en postgres voor host in docker

  4. Beheer van SQL Server-indexen met behulp van Index Manager voor SQL Server