باستخدام المشغل الصحيح ، أو الأفضل ، وليس المساواة في MySQL
-
20-09-2019 - |
سؤال
أي من الطريقين (المكافئين بشكل دلالي) هو الأفضل من اختبار عدم المساواة؟
'foo' != 'bar'
(علامة التعجب وعلامة متساوية)'foo' <> 'bar'
(أقل من وأكبر من رموز شيفرون معًا)
تشير وثائق MySQL بوضوح إلى أنه لا يوجد فرق بينهما ، ومع ذلك يبدو أن بعض الأشخاص مرتبطون فقط بالقيام بذلك بطريقة أو بأخرى. ربما يكون هذا مجرد نقاش آخر لا معنى له مقابل Emacs ، لكن عندما يقرأ الآخرون الكود الخاص بك (وبالتالي استفساراتك) ، من المفيد الحفاظ على بعض الاتساق.
<>
يشبه كثيرا <=>
وهو مشغل غير مستقل للغاية ولكنه قد يؤدي إلى الارتباك في لمحة سريعة لأن الاثنين معاكس تقريبًا (باستثناء ما هو واضح NULL
حالات).
المحلول
<> يجب أن تكون مفضلة ، كل الأشياء متساوية ، لأنها تتوافق مع معيار SQL وهي أكثر تحملاً تقنيًا ...
! = غير قياسي ، ولكن معظم ديسيبل ينفذها.
SQL: 2008 القواعد:
<not equals operator> ::=
<>
نصائح أخرى
من الواضح.
ال ! الشخصية في الركن الشمالي الغربي من لوحات المفاتيح الأمريكية.
مقر Microsoft في الركن الشمالي الغربي من الولايات المتحدة.
لذا. <>
هو إشارة إلى Microsoft.
!=
هو رفض Microsoft.
إنه قانون سياسي سري.
<> هو الوحيد في معيار SQL-92.
DBA بشكل عام مثل <> والمبرمجين مثل! =. مجرد ملاحظة :-)
إنهم متشابهون، إنه تفضيل بحت.
هذا يجب أن يعطيك فكرة جيدة
! = (لا يساوي) لا يساوي (ليس معيار SQL-92)
<> (لا يساوي) لا يساوي
ال <>
المشغل هو الذي هو في معيار SQL ، لذلك فإن معظم الأشخاص الذين يعرفون SQL سوف يعتادون عليه ، أو على الأقل على دراية به. أنا شخصيا لم أكن على دراية بذلك !=
كان المشغل متاحًا أيضًا في بعض لهجات SQL حتى وقت قريب.
كما لاحظت ، يميل الناس إلى استخدام واحد أو آخر فقط ، وهذا نهج جيد ، على الأقل على أساس كل مشروع على حدة. أيهما تختار استخدامه ، كن متسقًا.