ورود

View Full Version : مبتدی: کد سرچ کردن و پاک کردن چند عدد



s_dastjani
شنبه 03 دی 1390, 01:52 صبح
سلام


Aban/4521/

Aban/4681/

Aban/5535/

Aban/9875/

میخوام در تمام دیتابیس سرچ کنه بعد عدد چهار رقمی که بعد از آبان وجود داره رو پاک کنه
ممنون میشم کمکم کنید

امیـرحسین
شنبه 03 دی 1390, 11:19 صبح
اگر مدل دقیقا همینه با LIKE:
UPDATE testTable SET testColumn=SUBSTRING(testColumn,0,6) WHERE testColumn LIKE '/Aban/%';

برای مدلهای غیر ثابت Regular Expression:
UPDATE testTable SET testColumn=SUBSTRING(testColumn,0,6) WHERE testColumn REGEX '^/Aban/[0-9]$';

(تابع SUBSTRING که استفاده شده میاد ۶ کاراکتر اول رو جدا و استفاده می‌کنه)

s_dastjani
سه شنبه 06 دی 1390, 21:20 عصر
سلام کد اولی
0 rows affected. ( Query took 0.0037 sec )
پیدا نمیکنه مسر را و کد دومی هم
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'REGEX '^/Aban/[0-9]$'' at line 1

این ارور را میده فک کنم این قابلیت REGEX را نداره

UPDATE wp_posts SET post_content=SUBSTRING(post_content,0,6) WHERE post_content LIKE '/1390/%';
این هم کد

امیـرحسین
چهارشنبه 07 دی 1390, 11:20 صبح
اولا که کاری که دارید میکنید یکم عجیبه پیشنهاد می‌کنم مطمئن باشید یا با کسی مشورت کنید. دوما post_content مگه متن پست نیست؟ سوما وقتی LIKE با علامت % شروع نمیشه یعنی فیلد باید با اون مقدار شروع بشه. یعنی تو نمونه‌ی شما فقط اونهایی انتخاب میشند که فیلد post_content دقیقا با 1390/ شروع شده باشند.
بجای UPDATE از SELECT استفاده کنید. زمانیکه مطمئن شدید سطرها درست انتخاب میشند بعد UPDATE رو اجرا کنید.

s_dastjani
چهارشنبه 07 دی 1390, 15:49 عصر
سلام اقا مرسی کد اول حل شد ولی باز برای کد دوم مشکل هست این که نمیشه لینک های عدد دار یا متغیر درست کرد


UPDATE wp_posts SET post_content=SUBSTRING(tpost_content,0,6) WHERE post_content REGEX '%/Azar/[0-9]$';
باز ارور sql mide
نمونه لینک را براتون پ.خ کردم