J'ai une table avec les valeurs suivantes:expression régulière simple dans Oracle
ID NAME ADDRESS
1 Bob Super stree1 here goes
2 Alice stree100 here goes
3 Clark Fast left stree1005
4 Magie Right stree1580 here goes
Je dois faire une requête en utilisant LIKE
et obtenir que la ligne ayant stree1
(dans ce cas seulement obtenir celui avec ID = 1) et j'utilise la requête suivante:
select * from table t1 WHERE t1.ADDRESS LIKE '%stree1%';
Mais le problème est que je reçois toutes les lignes que chacun d'eux contient stree1
plus certains caractères/nombre après.
J'ai découvert que je peux utiliser REGEXP_LIKE
comme je me sers oracle, ce serait le bon regex à utiliser dans:
select * from table t1 WHERE regexp_like(t1.ADDRESS ,'stree1');
merci @Michael c'est exactement ce dont j'ai besoin. – Adnan
Cela peut retourner le caractère après stree1 (non-mot ou EOL). Vous devrez peut-être utiliser stree1 (? = \ W | $) s'il ajoute des caractères indésirables ou utiliser stree1 \ b qui correspond à n'importe quelle limite de mot. – tinifni
Dans cette requête SQL, il ne s'agit pas de savoir ce que l'expression régulière "retournerait", mais simplement de ce qu'elle correspondrait. S'il capturait réellement, alors une anticipation anticipée serait plus appropriée. –