هيكلة نص استعلام SQL

قم بالتمرير لأسفل لرؤية هيكلة نص استعلام SQL. يمكنك تقديم ملف نصي لكل مستخدم في قاعدة بيانات الرد التلقائي، والذي يمكنه إرسال رسائل SMS إذا اتبعوا النص. يعمل الملف مع كل رسالة واردة ويختار الرسائل الصادرة وفقًا للفلتر.

مقدمة

انظر إلى ملف النص. يمكنك أن ترى أن هو مقسم إلى أقسام مفصولة بأسطر فارغة (الشكل 1). يمكنك كتابة العديد من الأقسام كما تريد دون حد أقصى. يتم قراءة الأقسام بالتسلسل وأول قسم يتطابق مع رسالة SMS الواردة سيتم استخدامه لإنشاء رسالة الرد.

السطر الأول من كل قسم هو شرط التصفية، ويسمى السطر أو الأسطر التالية بالإجراء. يمكن لاستعلامات SQL SELECT إرجاع رسالة رد واحدة أو أكثر. إذا تطابق شرط التصفية مع بيانات الرسالة الواردة، فإنه يستدعي تنفيذ العبارات حتى يتم العثور على سطر فارغ. في هذه الحالة لن يتم التحقق من الأقسام الأخرى.

يمكنك رؤية شروط التصفية وعبارات SQL في هذا المثال
الشكل 1 - يمكنك رؤية شروط التصفية وعبارات SQL في هذا المثال

الشرط

يبدأ كل قسم بشرط يتكون من صف واحد مقسم إلى جزأين (الشكل 2)

السطر الأول من كل قسم يسمى: شرط
الشكل 2 - السطر الأول من كل قسم يسمى: شرط

الجزء الأول هو محدد هدف المطابقة، حرف واحد يحدد أي جزء من الرسالة الواردة يجب تصفيته (الشكل 3). يمكنك اختيار حرف محدد هدف المطابقة من الخيارات التالية:

# خيارات الشرط:
#     n - إذا كان رقم هاتف المرسل يتطابق مع النمط
#     m - إذا كان نص الرسالة يتطابق مع النمط
#     k - إذا كانت الكلمة المفتاحية تتطابق مع النمط. (الكلمة المفتاحية هي أول كلمة 
#         في الرسائل. يتم تحويل الكلمة المفتاحية إلى أحرف كبيرة)
الشكل 3 - محددات أهداف المطابقة

الجزء الثاني هو نمط المطابقة وهو فلتر الأحرف (الشكل 4).

هذه أمثلة لأنماط المطابقة تعمل على هدف الرسالة 'm':
m.* - يتطابق مع أي نص رسالة
m^abc.* - يتطابق إذا بدأ نص الرسالة بـ 'abc' أو 'ABC'
m.*abc.* - يتطابق إذا احتوى نص الرسالة على 'abc' أو 'ABC'
الشكل 4 - أمثلة لأنماط المطابقة الاستجابة

تحتوي مجموعة نتائج عبارة SQL SELECT على الرسائل التي سيتم إعادة توجيهها أو الرد عليها. عدد الصفوف التي يمكنك العثور عليها في مجموعة النتائج سيحدد عدد الرسائل التي سيتم إرسالها. (الشكل 6)

يمكن أن تحتوي مجموعة النتائج على المعلمات التالية:
المستلم - العمود الأول من مجموعة النتائج (إلزامي)
بيانات الرسالة - العمود الثاني من مجموعة النتائج (إلزامي)
نوع الرسالة - العمود الثالث من مجموعة النتائج (اختياري)
المرسل - العمود الرابع من مجموعة النتائج (اختياري)
أسماء المشغلين - العمود الخامس من مجموعة النتائج (اختياري)

الشكل 6 - سيقوم مستخدم قاعدة بيانات الرد التلقائي في Ozeki 10 SMS Gateway بإرسال رسائل SMS من النتائج.

مثال

انظر إلى مثال لكيفية تصفية الكلمة الأولى في كل رسالة واردة وكيفية تنفيذ إجراءات منفصلة لكل منها. يعتمد الإجراء على ما إذا كانت الكلمة هي "RED" أو "BLUE" أو غير ذلك. يتم اعتبار الأحرف الكبيرة والصغيرة على قدم المساواة. (الشكل 7)

k^RED
INSERT INTO log (sender,message) VALUES ('$sender','$messagedata')
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red'
#المرشح الأول يتحقق مما إذا كانت الكلمة "RED" هي الكلمة المفتاحية.
#إذا كانت صحيحة، فإنه يُدخل الرسالة في جدول "log"
#ويختار "Red is a good colour." كرسالة رد.
#إذا كانت غير صحيحة، ينتقل إلى المرشح التالي.

k^BLUE
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='blue'
#المرشح الثاني يتحقق مما إذا كانت الكلمة "BLUE" هي الكلمة المفتاحية.
#إذا كانت صحيحة، فإنه يختار "Blue is not the best option." كرسالة رد.
#إذا كانت غير صحيحة، ينتقل إلى المرشح التالي.

k.*
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default'
#المرشح الثالث سيقبل أي كلمة مفتاحية أخرى.
#يختار "There is no data for this keyword." كرسالة رد.
الشكل 7 - مثال على نص استعلام SQL

انظر إلى الجداول SQL الموجودة في الشكل 8 و9 لفحص المثال التالي:

id          keyword                        msg
----------  ------------------------------ -------------------------------------
 1          default                        There is no data for this keyword.
 2          red                            Red is a good colour.
 3          blue                           Blue is not the best option.
 
الشكل 8 - جدول 'autoreplymessage'

id          sender                         message
----------  ------------------------------ -------------------------------------
 1          +3620123456                    red Hello Autoreply Database User
 2          +3670654321                    red Good day to you Recipient
الشكل 9 - جدول 'log' للرسالة الواردة

More information