هل تميز REPLACE بين الأحرف الكبيرة والصغيرة في MySQL؟

متوسطقراءة دقيقةآخر تحديث 3 أكتوبر 2026

SQL قواعد البيانات

الإجابة

تجري الدالة REPLACE في MySQL بحثًا حساسًا لحالة الأحرف عند تحديد المقطع المطلوب استبداله. لذلك فإن البحث عن sql لا يعني استبدال SQL أو Sql أيضًا. قد يفاجئ هذا السلوك من اعتاد مقارنة النصوص داخل أعمدة تستخدم ترتيب مقارنة غير حساس لحالة الأحرف.

يجب قراءة سلوك الدالة نفسها بدل افتراض أن كل عمليات النص تتبع الطريقة نفسها. إذا أردت توحيد حالة الأحرف قبل الاستبدال، فيمكن بناء تعبير يتضمن UPPER أو دالة مناسبة، لكن ذلك سيغير حالة بقية النص أيضًا. لذلك لا يعد تحويل النص كله حلًا مناسبًا لكل مهمة تحرير.

مثال

SELECT REPLACE('SQL sql Sql', 'sql', 'DB') AS label;

يتغير المقطع الأوسط وحده، وتصبح النتيجة SQL DB Sql. المقطعان الآخران لا يطابقان سلسلة البحث من حيث حالة الأحرف، رغم تشابه الحروف الأساسية.

باختصار: تراعي REPLACE حالة الأحرف في النص المطلوب، فلا تتوقع استبدال الأشكال المختلفة للكلمة بمجرد تمرير شكل واحد منها.

هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.

اختبر فهمك

ما النص الذي يعيده الاستعلام التالي؟

CREATE TABLE books (
  title VARCHAR(40) CHARACTER SET utf8mb4
  COLLATE utf8mb4_0900_ai_ci
);
INSERT INTO books (title) VALUES ('SQL sql Sql');
SELECT REPLACE(title, 'sql', 'DB') AS label FROM books;