راهنمایی برای نوشتن procedure در mysql
سلام دوستان
من میخوام یه procedure برای دیتابیس mysql در php my admin بنویسم که متاسفانه هرکار کردم به در بسته خوردم و همش داره ارور میده
اگه دوستان راهنمایی کنید که چطور باید بنویسم ممنون میشم
داستان از این قراره که من میخوام تو یه جدولی بنویسم که نامش از الان مشخص نیست و زمان اجرا مشخص میشه .
مثلا :
فرض کنید که ما دو نام a, b رو که از کاربر میگیریم و حالا میخوایم چک کنیم که آیا مقدار a در جدول b وجود داره؟ اگه وجود داشت id اون رکورد رو به ما بده و اگه وجود نداشت مقدار a رو در جدول b ذخیره کنه و مثلا “OK” رو برای ما برگردونه
انواع کدها و روش ها رو امتحان کردم ولی نشد که نشد!!!!!!!!!!!
باتشکر
نقل قول: راهنمایی برای نوشتن procedure در mysql
اول پیشنهاد می کنم به جای PHPMyAdmin از MySQL WorkBench استفاده کنید که کار کردن با بانک براتون خیلی راحت تر میشه و امکانات خیلی بیشتری در اختیار دارید
...
اگر تعداد انتخاب ها برای نام جدول محدوده ، یعنی از بین چند جدول مشخص انتخاب میشه، می تونید یک پارامتر ورودی برای مشخص کردن جدول ایجاد کنید و از شرط با دستور CASE استفاده کنید و کد مربوط به هر جدول رو اجرا کنید
اگر تعداد انتخابها هم محدود و مشخص نیست، می تونید از Prepared Statement استفاده کنید، یک مثال در این لینک وجود داره :
http://stackoverflow.com/questions/3...ith-this-query
نقل قول:
فرض کنید که ما دو نام a, b رو که از کاربر میگیریم و حالا میخوایم چک کنیم که آیا مقدار a در جدول b وجود داره؟ اگه وجود داشت id اون رکورد رو به ما بده و اگه وجود نداشت مقدار a رو در جدول b ذخیره کنه و مثلا “OK” رو برای ما برگردونه
مقدارها رو SELECT کنید و با Count تعدادش رو بریزید داخل یک متغیر :
SELECT Count(ID) INTO @C FROM b WHERE MyField = 'a'
مقدار Count توی @C ذخیره میشه و میت ونید روی مقدارش شرط بذارید که اگر مقدارش مثلا بزرگتر از یک بود یعنی وجود داره
اگر میخواید ID همون رکورد رو بگیرید می تونید به اسن صورت عمل کنید :
SET @MyID = 0;
SELECT ID INTO @MyID FROM b WHERE MyField = 'a'
IF (@MyID > 0) THEN
SET MyOutID = @MyID;
ELSE
INSERT INTO b ...;
SET MyOutMsg = 'OK';
END IF;
فرض می کنیم در کد بالا متغیر های MyOutMsg و MyOutID به صورت پارامترهای خروجی ( OUT ) برای SP تعریف شدن
اگر باز مشکل وجود داشت کدی که نوشتید رو قرار بدید که بررسی بشه
نقل قول: راهنمایی برای نوشتن procedure در mysql
خییییییییییییییییییلی ممنون
خدا رو شکر بالاخره کار کرد.
دلیل اصلی کار نکردن کدهای قبلی هم فکر کنم اشتباهات ریزی مثل قرار دادن نام فیلد در ( ' ) و از این جور مشکلات بود که من فکر میکردم مشکل از کد های منه
نقل قول: راهنمایی برای نوشتن procedure در mysql
سلام
آقا من یه کد sql دارم که بهینه نیست و در هاست جواب نمیده چون چند تا مقدار میفرسته . امکانش هست راهنماییم کنید :
select `group_sub` from `tbl_amlak` where
`group_sub` <> (select `group_sub` from `tbl_amlak` where `group_sub` like '%ویلا%' ) and
`group_sub` <> (select `group_sub` from `tbl_amlak` where `group_sub` like '%آپارتمان%') and
`group_sub` <> (select `group_sub` from `tbl_amlak` where `group_sub` like '%زمین%')
GROUP BY `group_sub` DESC
میگم اگر فیلد group_sub مخالف ویلا و آپارتمان و زمین بود بیا نمایش بده
نقل قول: راهنمایی برای نوشتن procedure در mysql
دقیقا برعکس جستجوعه . در جستجو میگیم اگر اینا بود بیا نمایش بده . ما در اینجا میگیم اگر ویلا و آپارتمان و زمین بود نمایش نده !!!
ممنون میشم راهنماییمون کنید . گیر کردم :افسرده:
نقل قول: راهنمایی برای نوشتن procedure در mysql
نقل قول: راهنمایی برای نوشتن procedure در mysql
......... آپ ..... گیر کردم :افسرده::ناراحت:
نقل قول: راهنمایی برای نوشتن procedure در mysql
خیلی مسئله را پیچیده کردی
SELECT `group_sub` FROM `tbl_amlak` WHERE
(`group_sub` NOT LIKE '%ویلا%' ) AND
( `group_sub` NOT LIKE '%آپارتمان%') AND
( `group_sub` NOT LIKE '%زمین%')
GROUP BY `group_sub` DESC
چک کن از نظر نگارشی استباه نداشته باشم همینجوری تغییر دادم...
نقل قول: راهنمایی برای نوشتن procedure در mysql