عرض مشاركة واحدة
قديم 07-11-2010, 11:46 PM   رقم المشاركة : 1 (permalink)
معلومات العضو
Black-FoG
VbSpIdeR T34M
 
الصورة الرمزية Black-FoG
 

 

 
إحصائية العضو






Black-FoG غير متواجد حالياً

إرسال رسالة عبر MSN إلى Black-FoG

 

 

إحصائية الترشيح

عدد النقاط : 10
Black-FoG is on a distinguished road

افتراضي حل مشكلة Illegal mix of collations for operation 'UNION'


[align=right]
[align=right]

السلام عليكم ورحمة الله


من مدة ما نزلت موضوع واليوم جبت لكم موضوع مهم :


بعض الأحيان يلاحظ البعض ان حقنته تكون صحيحة ولكن عند حقن طلب لعمود من جدول يظهر الخطأ

كود:
Illegal mix of collations for operation 'UNION'




سبب الخطأ باختصار ان العمود في الاستعلام الأصلي "قبل union" يختلف التشفير او encode فيه عن العمود الذي تستغله انت "بعد union" فيكون الأول مثلاً بشفرة utf8 والثاني latin1 وهكذا

والحل هو تحويل العمود الذي تستغله انت الى النمط المعرف للعمود المقابل له في استعلام ماقبل union

للتحويل نستخدم دالة convert

مثال: لو فرضنا ان العمود في استعلام ماقبل union معرف على شفرة utf8 وكان العمود الذي تحقنه latin1 فسيظهر الخطأ السابق, والتحويل كالتالي:


كود:
union select convert(column using utf8) from table
بحيث column العمود المراد تحويله
table الجدول
ولاتنسى كتابة ارقام الاستغلال الأخرى قبل او بعد هذا العمود حسب حقنتك

وفي حال كان الترميز latin1



كود:
CONVERT(asd USING latin1)
قد يكون الترميز ascii بعض الأحيان فيكون التحويل :

كود:
CONVERT(asd USING ascii)
ولاداعي لأن تخشى عدم معرفتك لنوع التشفير المطلوب التحويل اليه ... يكفي تجريب التحويل الأول ومن ثم الثاني واحدهما سينجح معك باذن الله



بالتوفيق يا شباب


Adiooooos
[/align]
[/align]


pg la;gm Illegal mix of collations for operation 'UNION'

التوقيع

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[align=center]قريبا... فريق [-=BFT=-][/align]

 

   

رد مع اقتباس