PDA

View Full Version : معادل توابع instr و left در Mysql



piter1355
جمعه 18 خرداد 1386, 20:54 عصر
سلام به همه دوستان
من با odbc این گوئری رو اجرا میکنم

SELECT PostTable.* , GroupCity.* FROM PostTable , GroupCity WHERE ((left(GroupCity.CityGroupTitle,(instr(GroupCity.C ityGroupTitle,'-->')-1))='$F')) And PostTable.PostGroup=GroupCity.CityGroupID and PostTable.PostPublish=1

ولی با mysql رکوردی استخراج نمیشه .

به این نتیجه رسیدم که توابع instr و left در mysql قابل تشخیص نیست . حالا معادلش رو میخوام

reza_rad
شنبه 19 خرداد 1386, 07:14 صبح
به این نتیجه رسیدم که توابع instr و left در mysql قابل تشخیص نیست . حالا معادلش رو میخوام
یه توضیح بدید که این توابع چیکار می کنند تا معادلش رو بهتون بگیم.

peyman1987
شنبه 19 خرداد 1386, 08:24 صبح
شما میخواین با این توابع چیکار کنین؟ مطمئن باشین زبان SQL از این توابع پشتیبانی نمیکنه. ولی اگه هدفتون مشخص باشه شاید بشه از راه دیگه‌ای بهش رسید.

piter1355
شنبه 19 خرداد 1386, 12:12 عصر
یه توضیح بدید که این توابع چیکار می کنند تا معادلش رو بهتون بگیم.

این توابع باید توسط انجین mysql اجرا بشه

مثلا کد زیر باید شماره کارکتر( محل قرارگیری ) کارکترهای ('-->') درون محتوای فیلد GroupCity.CityGroupTitle برگردونه

instr(GroupCity.CityGroupTitle,'-->')

و left هم که مشخصه (تعداد مشخص کارکتر از سمت چپ رشته رو برمیگردونه )


SELECT PostTable.* , GroupCity.* FROM PostTable , GroupCity WHERE ((left(GroupCity.CityGroupTitle,(instr(GroupCity.C ityGroupTitle,'-->')-1))='$F')) And PostTable.PostGroup=GroupCity.CityGroupID and PostTable.PostPublish=1


تو odbc بدون هیچ مشکلی کار میکنه .
حالا دارم بانک اطلاعاتیمو تبدیل میکنم به mysql . ظاهرا باید چند تا کوئری رو عوض کنم .

piter1355
دوشنبه 21 خرداد 1386, 21:08 عصر
مشکل حل شد . با تابع SUBSTRING_INDEX

از راهنمایی دوستان ممنونم

oxygenws
سه شنبه 22 خرداد 1386, 10:19 صبح
تابع left داریم.

piter1355
سه شنبه 22 خرداد 1386, 23:24 عصر
بله left هم داریم