خيلي ممنون
بهتره من هدف اصليم رو بگم . كه زودتر به نتيجه برسم . من مي خوام يه قسمت براي جستجو درست كنم كه وقتي كاربر مثلا سه تا لغت رو search مي كنه نتيجه اش رديفي باشه كه هر سه تا لغت توش باشه ( تعداد لغات قابل تغيير باشه يعني ممكنه كاربر 5 تا لغت بزنه ) . حالا توي هر ستوني بود اهميتي نداره ، فقط سطر هايي رو پيدا كنه كه هر سه تا لغت توش رو باشه .( مثل وقتي كه شما توي گوگل با "+" جستجو مي كنيد )
تا حالا پنج تا راه به نظرم رسيده ولي نمي دونم كدومش عملي و درست هست .
1- استفاده از روشي كه بالا گفتم ، يعني به تعداد لغات select انجام بشه ، بعد اشتراك نتيجه ي select ها گزارش بشه
2- استفاده از يه select كه جلوي قسمت where بشه يه حلقه تعريف كرد (مثلا با while) كه عمل where روي خروجي هاي حلقه انجام بشه .
3- استفاده از دو تا table كمكي كه رديفهايي كه اولين لغت توش هست رو select كنه و بريزه توي table1 .
بعد select براي لغت دوم از table1 انجام بشه و نتيجه اش بره تو table2 . دوباره select براي لغت سوم توي table2انجام بشه و نتيجه اش بره توي table1 و ... همه لغتها كه تموم شدن محتواي آخرين جدول كه ورودي داشته رو گزارش كنه .
4- يه table كمكي بسازيم دقيقا مثل table اصلي . از لغت اول شروع كنيم توي هر رديفي كه نبود ، اون رديف حذف بشه . همين كار رو براي لغت دوم و ... هم انجام بديم . جدول نهايي ميشه جواب ما ...
5- استفاده از Boolean Full-Text Searches مثل :
کد:
SELECT * FROM table WHERE MATCH (... , ... , ...) AGAINST ('+word1 +word2' IN BOOLEAN MODE);
باز هم بايد توي قسمت AGAINST يه حلقه تعريف كرد كه +word ها نتيجه اون باشه
فكر ميكنم راه حلهاي مسخره اي باشه ولي ديگه نمي دونم چي كار كنم . اصلا نمي دونم كدوم يكي از اينها شدني هست . لطفا راهنمائيم كنيد :blush:
اگه برنامه اي ميشناسين كه اين كار رو بكنه ممنون ميشم معرفي اش كنيد .
( مي خواستم از search برنامه هايي مثل Phpbb يا VB استفاده كنم و راه اونها رو پيدا كنم اما آدم سراغ اونها نره بهتره :wacko: )