mercredi 23 mai 2012

البحث عن الصفوف مع أحرف خاصة في SQL Server

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

لذا نعم ، هذه الوظيفة هي فقط لمصلحة بلدي. نأمل أن يساعد شخص آخر أيضا.

دعونا نقول لكم نريد أن العثور على أي الحقول التي تحتوي على النص "100 ٪" ، لذلك كنت وضعت معا هذا الاستعلام :

SELECT * FROM tablename WHERE fieldname LIKE '٪ 100 ٪"

بدلا من ما تريد ، وستحصل على كافة الصفوف التي تحتوي على "100'' فضلا عن الصفوف التي تحتوي على "100 ٪".

المشكلة هنا هي أن يستخدم SQL Server علامة النسبة المئوية ، تؤكد ، وبين قوسين معقوفين كأحرف خاصة. كنت ببساطة لا يمكن استخدامها كأساس حرف عادي في استعلام LIKE دون الهروب منها.

القوس مربع الهروب

يمكنك تحيط ٪ أو _ مع معقوفتين لإخبار SQL Server الذي حرف داخل حرف العادية.

SELECT * FROM tablename WHERE fieldname LIKE '٪ 100 [٪]٪'

T - SQL بناء جملة ESCAPE

بدلا من ذلك ، يمكنك إلحاق المشغل ESCAPE على الاستعلام الخاص بك ، وإضافة حرف قبل القيمة التي تريد الهروب.

SELECT * FROM tablename WHERE fieldname LIKE '٪ 100 ٪" ESCAPE ''

الهروب '' جزءا من الاستعلام يخبر محرك SQL لتفسير حرف بعد كحرف بدلا من حرف بدل.

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

Aucun commentaire:

Enregistrer un commentaire