"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > طرق لتحديد واستخدام المتغيرات بأمان في عبارات SQL SELECT

طرق لتحديد واستخدام المتغيرات بأمان في عبارات SQL SELECT

نشر في 2025-05-01
تصفح:193

How Can I Safely Define and Use a Variable Within a SQL SELECT Statement?

تحديد واستخدام متغير ضمن عبارة تحديد

في SQL ، لا ينصح عمومًا بتعيين قيمة لمتغير مستخدم واستخدامه في نفس البيان المحدد. تنص وثائق MySQL صراحة على أن ترتيب التقييم لمثل هذه التعبيرات غير محدد وقد يختلف بناءً على عناصر العبارات وإصدارات الخادم.

لتوضيح هذه النقطة ، فكر في الاستعلام التالي:

Z: = sum (عنصر) ، 2*@z من Tablea ؛
SELECT 
    @z:=SUM(item),
    2*@z
FROM
    TableA;
في هذا الاستعلام ، تتوقع أن يعيد العمود الثاني قيمة @Z مضروبة على اثنين. ومع ذلك ، قد يعيد MySQL فارغًا ، حيث أن أمر التقييم غير مضمون. يختلف هذا السلوك عن استخدام إجراء مخزن بدلاً من متغير المستخدم ، كما هو موضح أدناه:

حدد Z: = SomeProcedure (عنصر) ، 2*@z من tablea ؛
SELECT 
    @z:=SUM(item),
    2*@z
FROM
    TableA;
في هذه الحالة ، يتم الحصول على النتائج المتوقعة لأنه يتم تقييم استدعاء الإجراء المخزن قبل التخصيص المتغير. من (SELECT Z: = SUM (عنصر) من Tablea ) t ؛

يضمن هذا النهج أن يتم تعيين المتغير قبل استخدامه في الاستعلام الخارجي.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3