سوال راجب دستور SELECT پیشرفته در Mysql
با سلام و وقت بخیر خدمت دوستان
فکر میکنم نوشتن این دستور SLECET فقط کار یک استاد با تجربه در mysql هست و بس و من هرکاری کردم موفق نشدم.
کل پروژه نیازمند به این SELECT هس که ماه ها وقت گذاشتم براش و اگر از دوستان کسی بتونه این کد رو بنویسه از نظر پرداخت هزینه تا حد قابل توجه ای پرداخت میکنم.
پروژه ی اندرویدی دارم که از طریق ListView اطلاعاتی رو در یک ستون از نوع text در دیتابیس Mysql ذخیره میکنه که هر آیتم در ListView شامل 3 مقدار عددی هست و در ذخیره مشکلی ندارم. در هنگام جستجوی این فیلدها و استخراج به صورت JSONArray کار پیچیده ای باید انجام بشه:
3 مقداری که گفتم رو به صورت اعشاری a.bc ذخیره کردم که مجموع آیتم ها به شکل زیر ذخیره میشه
" a.bc a.bc a.b a a a.b a.bc "
وجود مقدار a همیشه الزامی هست ولی b و c الزامی نیست ممکنه باشه و نباشه
تعداد کاراکتر مقدار a و c متغیر هست ولی b فقط 1 کاراکتر هست (0-9)
از طریق $_REQUEST در php مقادیر a b c دریافت میشه.
خروجی jason array باید به شکل زیر باشه:
شرط استخراج اینه که هر پارتی که با space در ستون text جدا شده این شرایط رو داشته باشه:
مقدار a برابر با a دریافتی از $_REQUEST هست.
و اگر مقدار b توست $_REQUEST تعیین شده بود مقدار b کجا بزرگتر و مساوی هست.
و اگر مقدار c توست $_REQUEST تعیین شده بود مقدار c کجا کوچکتر و مساوی هست.
مثال 1:
مقدار درخواستی هنگام جستجو a = 22 b = 5 c = 777
کجا پارتی وجود داره که 22.5777 هست و یا خوده 22 و (خود 5 و بزرگترش تا 9) و (خود 777 و کوچکترش تا 0)
مثال 2:
مقدار درخواستی هنگام جستجو a = 40 b = 2
کجا پارتی وجود داره که 40.2 هست و یا خوده 40 و (خود 2 و بزرگترش تا 9) و c مهم نیست که وجود داشته باشه و یا چقدر باشه
مثال 3:
مقدار درخواستی هنگام جستجو a = 1200
کجا پارتی وجود داره که 1200 هست و b و c مهم نیست که وجود داشته باشه و یا چقدر باشه
در خروجی هم هر پوزیشن آرایه, 3 فیلد رو در 3 نام a b c + دیگر مشخصات اون رکورد دیتابیس (*) استخراج میکنه
تعداد رکردهای دیتابیس خیلی زیاده و باید در دستور SELECT با دستورات پیشرفته این استخراج صورت بگیره و نمیشه مقدار رو دریافت کرد و بعدا کارایی روی استخراج به کمک آرایه ها و... انجام داد.
با دستورات substring regexp concat و دیگر دستورات پیشرفته php غیر ممکن نیست.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .