sql >> Databasteknik >  >> RDS >> Oracle

Hur man lägger till ett specialtecken i Oracle SQL när en exakt matchning hittas i kolumnen

I Oracle REGEXP , det finns ingen \b mönster för att matcha ordgränser. En vanlig lösning ser ut ungefär så här.

SELECT id,
       REGEXP_REPLACE (msg_info, '(^|\s|\W)(gold)($|\s|\W)', '\1~\2\3', 1,0,'i')
FROM   yourtable;  

DEMO

Detta söker efter ordet guld i början av strängen, omgivet av ett mellanslag på vardera sidan, slutet av strängen eller ett icke-ordstecken (som ? eller -). \1,\2,\3 representerar tecknen som matchas inom 1:a, 2:a och 3:e parentesen.



  1. ladda upp en bild till mysql-databasen med Windows universal app

  2. Spela! Framework 1.2.4 --- C3P0-inställningar för att undvika att kommunikationslänken misslyckas leder till vilotid

  3. Hur väljer man från en DATETIME-kolumn med endast ett datum?

  4. MySQL:Grupperad primärnyckel med InnoDB