ورود

View Full Version : مشکل با عملگر like



mbasirati
پنج شنبه 06 تیر 1392, 20:28 عصر
سلام
من توی tsql یه همچین کدی رو نوشتم.
declare @searchTxt nvarchar(200)
set @searchTxt='ارسال'
select * from Posts where PostTitle_fa like '%@searchTxt%' or PostTitle_en like '%@searchTxt%' or
PostSummery_fa like '%@searchTxt%' or PostSummery_en like '%@searchTxt%' or PostFullText_fa like
'%@searchTxt%' or PostFullText_en like '%@searchTxt%'

من یه جدول به نام Posts دارم که توش یه رکورد ثبت شده که کلمه "ارسال" هم توی بعضی فیلداش که توی کوئری هست وجود داره. اما این کوئری هیچ رکوردی برنمیگردونه
مشکل کجاس؟

m.webgard
پنج شنبه 06 تیر 1392, 21:24 عصر
سلام
شما 2 تا مورد رو بایستی رعایت کنید، اول اینکه هر وقت میخواید از کاراکترهای فارسی بصورت مستقیم استفاده کنید باید قبلشون یک کاراکتر N بذارید
بعنی بنویسید:
set @searchTxt=N'ارسال'

دوم اینکه شما دارید ستونهاتون رو با عبارت '%@searchTxt%' مقایسه میکنید. مشخصه که شما چنین عبارتی در داده هاتون ندارید. در صورتی که باید به شکل زیر نوشته بشه:
مثلا:

select * from Posts where PostTitle_fa like '%' + @searchTxt + '%'...
موفق باشید

mbasirati
پنج شنبه 06 تیر 1392, 21:41 عصر
تشکر از پاسخ شما
مشکل همون مورد دومی بود که فرمودید.