PDA

View Full Version : تشخیص کلمه کامل از قسمتی از کلمه



Hossis
سه شنبه 12 بهمن 1389, 02:32 صبح
با سلام
وقتی می خواهیم با دستور select مقادیری از جدول را فراخوانی کنیم, معمولا از دستور Like استفاده می کنیم تا تشخیص دهیم کلمه ای در فیلد خاص وجود دارد یا نه مثل دستور زیر

SELECT * FROM TABEL WHERE Id Like'%علی%'
حال سوال من اینه که در این صورت , کلماتی که علی جزو آنها باشد نیز آورده می شوند مثل علیه , علیم تعلیم و ...
آیا راهی نیست که تشخیص بدیم که کلمه پیدا شده, کلمه کامل "علی" در این فیلد هست نه کلمات بالا؟؟
یعنی کلمه کامل رااز ناقص تشخیص بدیم؟؟

AmirHarirbafan
سه شنبه 12 بهمن 1389, 04:10 صبح
خوب اگه منظور طرف، علیپور بودش چی ؟

Hossis
سه شنبه 12 بهمن 1389, 17:16 عصر
خوب اگه منظور طرف، علیپور بودش چی ؟

فرض ما در جایی هست که کاربر منظورش عین کلمه "علی" است نه این که علی قسمتی از کلمه باشد. و این را هم کاربر خودش انتخاب می کند

mehdi.mousavi
سه شنبه 12 بهمن 1389, 17:43 عصر
سلام.
میتونید بدین شکل عمل کنید:


SELECT * FROM MyTable
WHERE
Col LIKE N'% علی %' OR
Col LIKE N'علی %' OR
Col LIKE N'% علی'

موفق باشید.

Hossis
دوشنبه 18 بهمن 1389, 00:35 صبح
با سلام
این قدر رو خودم می دونستم که یک کلمه با فاصله از کلمه دیگه جدا می شه اما برخی وقتها هست که کلمه با فاصله (اسپیس)تموم نمیشه و ممکنه کاراکترهای دیگه باشه به عنوان مثال، علی در همه این موارد کلمه کامل است:
علی(پور)\ علی.محمد\ علی)زاده
حتی ممکنه آخر پاراگراف باشه که هیچ کاراکتری قبل از اون نباشه، دراین صورت بررسی همه اینها وقت زیادی می بره
من در برخی برنامه ها دیدم که کلمه کامل رو از جزؤ کلمه تشخیص می دن ولی فرمولش رو نمی‌دونم

mehdi.mousavi
دوشنبه 18 بهمن 1389, 00:57 صبح
با سلام این قدر رو خودم می دونستم که یک کلمه با فاصله از کلمه دیگه جدا می شه اما برخی وقتها هست که کلمه با فاصله (اسپیس)تموم نمیشه و ممکنه کاراکترهای دیگه باشه به عنوان مثال، علی در همه این موارد کلمه کامل است: علی(پور)\ علی.محمد\ علی)زاده حتی ممکنه آخر پاراگراف باشه که هیچ کاراکتری قبل از اون نباشه، دراین صورت بررسی همه اینها وقت زیادی می بره من در برخی برنامه ها دیدم که کلمه کامل رو از جزؤ کلمه تشخیص می دن ولی فرمولش رو نمی‌دونم

سلام.
بسیار خوب، پس احتمالا از این مساله بی اطلاع بودید که میشه یه CLR UDF Function برای SQL Server نوشت و در اون با استفاده از Regular Expression ها براحتی اینکارو انجام داد.
برای توضیحات بیشتر، لطفا به مقاله آقای David Banister در مجله MSDN (http://msdn.microsoft.com/en-us/magazine/cc163473.aspx) مراجعه کنید.

موفق باشید.

Hossis
سه شنبه 19 بهمن 1389, 15:40 عصر
این که خیلی سطحش بالا است
یک مقاله ای زیر دیپلم و به زبان فارسی جایی پیدا نمی‌شه که بتونیم فارسی رو پاس بداریم؟؟