PDA

View Full Version : جستجوی تودرتو



ya ali
جمعه 11 دی 1388, 21:38 عصر
سلام
من دارای یکسری اطلاعات در بانکم هستم و میخوام بعد از هر بار جستجو به مطلب موردنظرم نزدیک بشم البته بانکم Sql هست و با دستور Select آشنا هستم مدنظرم اینه به صورتی باشه که پس از هر بار جستجو ، جشتجوی بعدی روی کل اطلاعات نباشه بلکه روی اطلاعات بدست آمدهاز جستجوی قبلی باشه صورت بگیره ممنون یا علی

majjjj
شنبه 12 دی 1388, 07:13 صبح
1 استفاده از جداول موقت
2 استفاده از select های تو در تو

sky_in_iran
شنبه 12 دی 1388, 07:46 صبح
سلام دوست عزيز
به نظر من از index استفاده كن بهترين راه حل براي كار شماست

ya ali
شنبه 12 دی 1388, 15:45 عصر
سلام و خیلی ممنون ولی من مبتدی هستم لطفا توضیح بدید دقیقا چیه و چطور باید استفاده کنم ممنون یا علی

sky_in_iran
شنبه 12 دی 1388, 16:32 عصر
دوست عزيز براي كسب اطلاعات بيشتر به بخش بانك اطلاعاتي بخش sql برو اونجا درباره اين موضوعات اطلاعات فراوان و مقالات و نمونه كدهاي زيادي هست اونجا هم راهنمايي بهتري ميتوني بگيري و هم گسترده تر اينجا موضوعات مربوط به زبان c# مطرح ميشه
موفق و پيروز و سربلند باشيد

ya ali
شنبه 12 دی 1388, 21:25 عصر
سلامی مجدد آقا سوال را در بخش sql نوشتم اصلا کسی نگاهی نمی کنه ، بازدید کننده در این بخش کمه لطفا کسی اگه بلد هست بگه ممنون یا علی

ya ali
جمعه 18 دی 1388, 08:14 صبح
سلام
من جواب سوالم را با کمک استادان sql در این سایت پیدا کردم که ساخت جداول مجازی هست ولی مشکلی که دارم چون جدول هام حاوی اطلاعات بسیار زیادی هست برنامم برای چند ثانیه اصلا هنک می کنه لطفا راهی برای برطرف کردن این مشکل به منه مبتدی یاد بدید ممنون یا علی

mir555
جمعه 18 دی 1388, 08:26 صبح
مثلا کوئری اولت اینه
select * from tbltest where a=1
اینو بریز تو متغییر مثلا s
کوئری دومت اینه
select * from tbltest where b=18
اگه بخوای رو جواب کوئری اول اینو اجرا کنی
اینو بنویس


string a="select * from tbltest where a=1"
string b=string.format("select * from ({0}) where b=18",a);


حالا اگه کوئری اجرا کنی بدرستی جواب می ده حافظه اضافی برای جدول اینجور چیزا نمی خواد هنگم نمی کنه اگه ایندکس درست باشه

ya ali
جمعه 18 دی 1388, 19:10 عصر
سلام تست کردم جواب میده ممنون ولی یه سوال اگر مراحل جستجو بیشتر از 2 تا بود مثلا تا 8 یا 9 بار چطور باید این کد را تغییر بدم و سوال دوم اینکه راه دیگری برای این منظور نیست چراکه اگه مثلا همین کد به صورتی تغییر پیدا بکنه که تا چندین مرحله مورد جستجو قرار بگیره به ازای همان تعداد خواسته باید از کل اطلاعات فیلتر بگیره ولی در جستجوی روی جداول مجازی پس از چندین بار چون حجم اطلاعات کمتر می شد سرعت هم نیز بیشتر میشد اینطور نیست آیا راه دیگری هست؟ ممنون یا علی

ya ali
جمعه 18 دی 1388, 21:20 عصر
آقای mir555 من کماکان منتظره راهنمایی شما و البته دیگر دوستان حرفه ای در این زمینه هستم ممنون یا علی

mir555
جمعه 18 دی 1388, 21:33 عصر
اگه بصورت بازگشتی اینو صدا کنی 100 بار هم جواب میده ولی دیگه نه به سرعت دفه اول ولی یک چیزی حواست باشه ساختن جدول روی رام یعنی اتلاف شدید حافظه اگه برق بره و شما دیتاتو آپدیت نکرده باشی افتضاح میشه

ya ali
جمعه 18 دی 1388, 21:35 عصر
آقا یعنی کسی راهنمایی در این مورد نمی تونه بکنه بابا دسخوش مدیران بخش شما خودی نشان بدید ممنون یا علی

ya ali
جمعه 18 دی 1388, 21:37 عصر
شرمند9 میشه منظورتون رو از بازگشتی برام با یک مثال مشخص کنید ممنون میشم یا علی

mir555
جمعه 18 دی 1388, 22:03 عصر
منظورم اینه کوئری اول تو کوئری دوم استفاده شد دومی تو سومی همینجور تا آخر یعنی متغییر آ برابر کوئری مرحله قبلی باشه