آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل حرف "ی" و با "ک"

system60dll  12 سال پیش  12 سال پیش
+2 0

با سلام

دوستانبنده یک سری اطلاعات رو از sqlserver بصورت json میگیرم و درون یک جدول sqlite ذخیره می کنم.

موقع search در جدول sqlite مثلا وقتی نام خانوادگی یک شخص شامل حرف "ی" هست نتیجه ای برای دستور select نمیاره!

همونطور که مستحضرید در sqlserver وقتی بنویسیم  like N'%text%'           -  for test   مشکل حل میشه. ولی نمیدونم اینجا راه حلش چیه! کسی می تونه کمک کنه؟

0 0
چوی 'ی' موجود در دیتابیس شما 'ی' عربی است و با 'ی' فارسی فرق داره...البته من چون فقط میخواستم از دیتابیس اطلاعات رو بخونم همه ی های عربی را با ی فارسی عوض کردم (12 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
ebrahimiali  12 سال پیش
+4 0

دوست عزیز مشکل در عدم تطابق این دو حرف هست . ی و ي

البته ي درسته. و توی Sql server هم همین مشکل هست. و ربطی به N گذاشتن نداره و اصلا N برای چی پشت رشته می زاریم و اصلا باید بزاریم یا نه در حوصله این بحث نیست. فقط یک کلام بگم مربوط می شه به character encoding

ولی در اینجا ما با دو کارکتر متفاوت با کد اسکی متفاوت سرکار داریم.باید حرف وارد شده توسط کاربر با حرف وارد شده توی دیتابیس یکی باشه. برای این کار ابتدا توی دیتابیس حرف "ی" و "ک" را به ترتیب "ي" و "ك"  جایگزین کنید که دستورش هم هست :

update _tablename set _fildname = REPLACE(_fildname  ,'ی', 'ي' );
update _tablename set _fildname = REPLACE(_fildname ,'ک', 'ك' );

بعد توی اندروید متنی را که می خواین جستجو کنین به صورت زیر ابتدا حروف غلط اون را جایگزین و بعد توی کوئری برا جستجو بزارین

 str1 = str1.replace('ی', 'ي').replace('ک', 'ك');
string query = "select * from _tablename where _fildname like '%" + str1 + "%'

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .