در یکی از پروژههایی که دارم رویش کار میکنم، مسیرهای موجود در بانک اطلاعاتی در یکی از جداول به صورت files/images/image1.jpg بود. اما به خاطر یک سری تغییر در فایلها، میخواستم مسیرها به صورت images/image1.jpg در بیاید و قسمت files/ حذف بشود.
در SQL توابع زیادی برای کار کردن با رشتهها داریم. یکی از این توابع SUBSTR است که همان کار توابع SUBSTR در PHP و C را انجام میدهد و بخشی از یک رشته را جدا میکند. اگر چه گفتنی است که تابع دیگری هم به نام SUBSTRING هست که در واقع نام دیگری برای همین تابع است (کی میدونه؟ شاید هم این نام دیگری برای آن یکی است (: )
Syntax کلی تابع SUBSTR:
SUBSTRING(str,pos), SUBSTRING(str FROM pos), SUBSTRING(str,pos,len), SUBSTRING(str FROM pos FOR len)
خوب من با یک Update ساده تمام مسیرها را به سادگی عوض کردم:
UPDATE FROM files SET filepath=SUBSTR(filepath, 6)
به همین سادگی! در این SQL برای این که انتهای رشته مشخص نبود من حالت اول را به کار گرفتم تا MySQL خودش تا آخر رشته را برای من جدا کند.
توابع دیگر کار کردن با رشتهها را اینجا ببینید. از توابعی که خیلی جالب هستند و فکر میکنم فقط در MySQL هست و مثلا SQL Server همچین تابعی را به این صورت ندارد، LOAD_File است که به شما اجازه میدهد یک فایل را از دیسک بارگزاری کنید. تابع جالب توجه دیگر هم REPLACE است.
آخرین دیدگاهها
6 روز 1 ساعت پیش
6 روز 11 ساعت پیش
6 روز 14 ساعت پیش
6 روز 18 ساعت پیش
2 هفته 5 روز پیش
3 هفته 3 روز پیش
3 هفته 3 روز پیش
3 هفته 3 روز پیش
3 هفته 3 روز پیش
3 هفته 3 روز پیش