لحل مشكلتك، يمكنك استخدام دالة SUBSTRING_INDEX
في MySQL لتقسيم السلسلة إلى جزئين بناءً على الفاصل الذي تحدده. في هذه الحالة، يمكنك استخدام /
كفاصل بين مسار المجلد واسم الملف. إليك كيف يمكنك تحديث الجدول لتقسيم القيمة إلى مسار المجلد واسم الملف:
sqlUPDATE video_thumb
SET thumb_path = SUBSTRING_INDEX(video_thumb, '/', -2) || '/',
file_name = SUBSTRING_INDEX(video_thumb, '/', -1)
WHERE video_thumb LIKE '%/%';
في هذا الاستعلام، SUBSTRING_INDEX(video_thumb, '/', -2)
سيعيد المسار الذي يحتوي على مجلد الصور، بينما SUBSTRING_INDEX(video_thumb, '/', -1)
سيعيد اسم الملف. تأكد من تغيير video_thumb
إلى اسم الحقل الصحيح إذا كان اسم الحقل الخاص بك يختلف.
يرجى ملاحظة أنه يمكن أن يتغير عدد القيم الفرعية (-2
و -1
) اعتمادًا على عدد القطع التي تريد تقسيم السلسلة إليها.
المزيد من المعلومات
بالطبع، سأقدم المزيد من المعلومات لمساعدتك في فهم الحل بشكل أفضل.
في الاستعلام الذي قدمته، تستخدم دالة SUBSTRING
لقص جزء من السلسلة بناءً على الموقع البدئي المحدد. ومع ذلك، يبدو أن هذا الاستعلام لا يفعل بالضبط ما تريده، حيث أنه يقوم فقط بقص جزء من السلسلة بدءًا من الموقع 24 ولا يقوم بتقسيم السلسلة كما ترغب.
بدلاً من ذلك، يمكن استخدام دالة SUBSTRING_INDEX
لتقسيم السلسلة بناءً على الفاصل المحدد، وفي هذه الحالة، الفاصل هو علامة الشرطة المائلة (/) التي تفصل بين المجلد واسم الملف. تسمح هذه الدالة بتحديد عدد الظهورات للفاصل، ولكن في هذه الحالة، نستخدم -2
للحصول على المسار إلى المجلد الرئيسي و -1
للحصول على اسم الملف.
وهكذا، الاستعلام الذي قدمته سيقوم بتحديث الجدول بحيث يكون لديك حقل جديد لمسار المجلد وآخر لاسم الملف، بناءً على القيمة الموجودة في حقل “video_thumb”.
للتأكد من أن الاستعلام يعمل بشكل صحيح، تأكد من تغيير “video_thumb” إلى اسم الحقل الصحيح الذي يحتوي على المسار الكامل للملف.