2013-07-23 14 views
5

Sorunum var - AbC (iki büyük harf arasındaki küçük b) gibi her bir deyimi bulmam gerekiyor. Örnek bir açıklama için: Küçük John bir ProBlEm vardı ve tHiS nasıl yapılacağını bilmek gerekiyor.İki büyük harf arasındaki küçük harfi bulma - MySQL

ProBlEm ve tHiS'i seçmem gerekiyor (BlE ve HiS, iki büyük harf arasındaki küçük bir harf). Bunu nasıl seçebilirim?

+0

"Burada her ifade" gibi her Retrive kelimeyi arama? Veritabanındaki herhangi bir yer var mı? – Jon

cevap

1
böyle bir kalıbı içeren bu kayıtlara ilişkin filtrelemek için bir ikili (küçük harf duyarlılığı sağlamak için) düzenli ifade kullanabilirsiniz MySQL

: Ancak

WHERE my_column REGEXP BINARY '[[:upper:]][[:lower:]][[:upper:]]' 

, ayıklamak için bu kadar basit değildir MySQL içinden bu tür bir desenle eşleşen alt dizeleri. Bir ,, bir UDF kullanabilir, örn. lib_mysqludf_preg, ancak uygulama katmanınızda gerçekleştirilmek için daha uygun bir görev olabilir. Her iki durumda da, düzenli ifadeler bu görevi basitleştirmeye yardımcı olabilir.

+0

[mysql elkitabından] bu uyarının farkında olun (http://dev.mysql.com/doc/refman/5.7/en/regexp.html#operator_regexp): "REGEXP ve RLIKE operatörleri bayt-moda tarzında çalışır Bu nedenle, çoklu bayt güvenli değildir ve çok baytlı karakter kümeleriyle beklenmedik sonuçlar doğurabilir. " – mabi

+0

Benim hatam, her şey çalışıyor! TEŞEKKÜRLER! –

+0

Sadece bir 'e' harfi yeterli olmalıdır. – mabi

İlgili konular