PDA

View Full Version : باز هم مبحثی تکراری از جستجو !



m_amin_t
یک شنبه 14 مرداد 1386, 14:02 عصر
سلام خدمت دوستان محترم!
من میخوام در جستجوی بانک اطلاعاتیم، مثلا اگه کاربر کلمه "محمدرضا" رو تایپ میکنه، برنامه کلماتی نظیر "محمد رضا" و "محمدرضا" و " محمد ر ضا" رو هم بیاره.
میشه کمکم کنید؟!

Kamyar.Kimiyabeigi
یک شنبه 14 مرداد 1386, 15:56 عصر
من فکر نمیکنم که sql server همچین کاری رو انجام بده؟ البته میتونین از like استفاده کنین ولی فقط مشابه های "محمدرضا" رو براتون میاره

m_amin_t
یک شنبه 14 مرداد 1386, 16:18 عصر
شاید SQL Server این کار رو نکنه ولی من منظورم این بود که راهی پیدا کنیم که بتونه این امکان رو فراهم کنه و نحوه پیاده سازیش بود

Kamyar.Kimiyabeigi
یک شنبه 14 مرداد 1386, 16:27 عصر
شاید SQL Server این کار رو نکنه ولی من منظورم این بود که راهی پیدا کنیم که بتونه این امکان رو فراهم کنه و نحوه پیاده سازیش بود

میدونین چند حالت ممکنه پیش بیاد؟؟؟؟ بعنوان مثال همین محمدرضا رو میشه همه حالتاشو بشمارین؟

supporter
یک شنبه 14 مرداد 1386, 22:15 عصر
ابتدا Space های رشته هاتون رو حدف کنید بعد اونها رو مقایسه کنید

Kamyar.Kimiyabeigi
دوشنبه 15 مرداد 1386, 08:00 صبح
ابتدا Space های رشته هاتون رو حدف کنید بعد اونها رو مقایسه کنید

ایشون نمیخوان که دنبال "محمدرضا" بگردن بلکه میخوان وقتی کاربر "محمدرضا" را وارد کرد هرچی حالت ممکنه مثله "محمد رضا" یا "محمد ر ضا" و ... را پیدا کنه که به نظر من خیلی حالتهای مختلفی داره و یک مقدار غیر منطقیه. اگر از like استفاده کنن تا مقداری کارشونو انجام میده ولی در این حد که خودشون گفتن پیاده سازیش خیلی پیچیده و وقت گیره

m_amin_t
دوشنبه 15 مرداد 1386, 09:36 صبح
اگه دیده باشین برنامه های یه ذره قدیمی که تحت dos کار میکردن همچین امکانی رو داشتن. حالا نمیدونم پایگاه داده هاشون این امکان رو داشت یا اینکه برنامه نویس پیاده سازیش میکرد.

Kamyar.Kimiyabeigi
دوشنبه 15 مرداد 1386, 10:40 صبح
اگه دیده باشین برنامه های یه ذره قدیمی که تحت dos کار میکردن همچین امکانی رو داشتن. حالا نمیدونم پایگاه داده هاشون این امکان رو داشت یا اینکه برنامه نویس پیاده سازیش میکرد.

اگر زبان برنامه نویسیتون delphi باشه و از ado استفاده کنین دستور locate دقیقا" همین کار رو انجام میده

پویا
دوشنبه 15 مرداد 1386, 12:41 عصر
فکر کنم تو مبحث full text search اس کیو ال یه دستوراتی برای این منظور داشته باشه

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


where name like 'محمد' or name like 'رضا' or ...


اون دوستمون هم که گفته بود space ها حذف کن درست گفته بود
اگه فاصله ها رو حذف کنی همشون یکی میشن