2011-02-16 12 views
36

Şirketim MySQL'i NO_BACKSLASH_ESCAPES modunda çalıştırır. Bu modda bir LIKE sorgusunda bir literal % veya _ nasıl kurtulabilirim? Standart yol \% şeklindedir, ancak bu modda çalışmaz.NO_BACKSLASH_ESCAPES seçeneği etkinleştirildiğinde gerçek yüzde işareti nasıl önlenir?

Örnek: bir sütunun aşağıdaki değerleri vardır: 5% off, 50% off. Aşağıdaki sorgu NO_BACKSLASH_ESCAPES modunda standart modda çalışır ancak:

SELECT * FROM mytable 
WHERE mycol LIKE '5\% off' 
+0

'%%' hile yapabilir mi? –

+3

@Marc nope, bu benim ilk denemem – Kip

cevap

47

sen, boru gibi, farklı bir karakter kullanabilirsiniz NO_BACKSLASH_ESCAPES modunun bakılmaksızın çalışan bir sürümü için

select * from mytable 
where mycol like '5\% off' escape '\'; 

kaçış gerekir:

select * from mytable 
where mycol like '5|% off' escape '|'; 
+1

teşekkürler. çift ​​tırnak değil, ters eğik çizgi etrafında tek tırnak olması gerekir. – Kip

+0

oh, NO_BLACKSLASH_ESCAPES – ajreal

+0

@ajreal'da kaçış kaçıyor olduğundan, NO_BACKSLASH_ESCAPES'i kastettiniz mi? – Cacovsky