MySQL Regex Kullanımı ve Gelişmiş Aramalar

MySQL Regex kullanarak Like komutu ile yapamadığımız birçok sorguyu nasıl yapabileceğimizi öğrenelim !

Regex mysql veritabanı içerisinde daha gelişmiş like arama işlemlerini yapabileceğimiz MySQL özelliğidir . Like komutu birçok ihtiyacımızı karşılıyor ama seperatörler arasında arama ayraçlar arasında arama gibi vs alternatif arama sorgularında like komutu işimize yaramaz .

Örnek bir senaryo ile kısaca REGEX kullanımından bahsedelim .

id Ad Soyad Mail Kategori
1 Rahim CAN rahimcan@live.com 1,2,5,15,112
2 Ramazan AKGÜL deneme@deneme.com 10,11,12,112

Yukarıdaki tabloda örnek like ile veri çekelim .

 

select * from tablo where Kategori like '%11%'

Yukarıdaki sorgunun sonucunda MySQL bize 2 satırıda döndürür . Fakat biz sadece ID=2 olanını döndüreceğini düşünerek sql kodumuzu yazdık .

Çözüme gelelim ve Regex kullanımını görelim

select * from tablo where Kategori REGEXP '^11\,[^\.]+$'

SQL Kodunu çalıştırdığınızda MySQL sonucu ID=2 olacaktır . İstediğimizi aldık .

Peki Nasıl Aldık ?

‘^11\,[^\.]+$’ => 11 arattığımız kategori ID’siydi . Virgül (,) ayraç seperatörüydü . MySQL Regex ile ayraçlarıda dikkate alarak istediğimiz sonuca ulaştırdı .

Peki 11 ID si tek değilde multi query yapmak istesiydik ne yapardık ?

select * from tablo where Kategori REGEXP '^11|12|15|112\,[^\.]+$'

Regex like’a göre daha gelişmiş sorgulamalara izin verir ve büyük projelerde mutlaka karşılaşacağınız bir komuttur .