Bu yüzden, hiç karşılaşmadığım ve sorunu düzeltmeyle ilgili çok fazla bilgi göremediğim ilginç bir sorun var. İçinde muazzam miktarda veriye (10 yıl) sahip olan büyük bir veri tabanım var.Mysql Sorgu sorunlarını LIKE ve kesme işaretlerini kullanarak
Şimdi, arama nesneleri iyi çalışıyor, ancak yakın zamanda birileri sizin için bir 'hata' konusuna dikkatimi çekti. Beklenen sonuçları elde etmek için çekim yapmaya çalıştım, ama boşuna.
birisi arayışında kesme işareti kullanır, dışarı arama hataları Ama hiçbir sonuç döndüren değil:
Bu benim konudur. Örneğin, Pete's
arandığında, sorgu yürütülür, ancak hiçbir şey döndürmez. Evet, sorgunun mysql_real_escape_string() olduğundan emin olun, böylece Pete's
Pete\'s
olur.
phpmysql'in arama özelliğini kullanarak sorgulamayı denediğimde bile, garip sonuçlar elde ederim.
SELECT * FROM `smd_article` WHERE `copy` LIKE '%Pete\'s%'
Ama phpmyadmin arama özelliğini kullandığınızda, bana verir: Sorgu böyle olması amaçlanmıştır
SELECT * FROM `smd_article` WHERE `copy` LIKE '%Pete''s%'
Ve aslında sql sekmede sorgu dışarı yazdığınızda, hala sonuç vermiyor. Ama sadece Petes yaptığımda sadece Pete ve bazı 3k kayıtları kullandığımda geri dönen bazı 17K kayıtları var.
Neden yanlış yaptığımı veya LIKE deyimini kullanarak bir sorgunun kesme işlemine izin vermesini sağlamak için eksik yaptığımı merak ediyorum. Düşünceler? mysql_real_escape_string
LIKE '%" . mysql_real_escape_string($find) . "%'
veya
LIKE '%Pete%27s%'
veya eğer
tarafından
, ama böyle o joker sorguları sorgulamak için mümkün olan en yavaş yoludur bilerek değer bir veritabanı. Küçük bir masa için uygun olabilirim, ama orta derecede büyük bir masa bile varsa, gerçekten işleri yavaşlatabilir. Uyarılırsınız. – SDC