SQL Server الهروب من الشرطة السفلية
-
08-06-2019 - |
سؤال
كيف يمكنني الهروب من حرف الشرطة السفلية؟
أنا أكتب شيئًا مثل جملة حيث التالية وأريد أن أتمكن من العثور على الإدخالات الفعلية مع _d في النهاية.
Where Username Like '%_d'
المحلول
مرجع T-SQL لـ LIKE لـ SQL Server 2000:
يمكنك استخدام نمط أحرف البدل الذي يطابق الأحرف كأحرف حرفية.لاستخدام حرف بدل كحرف حرفي، قم بإحاطة حرف البدل بين قوسين.يعرض الجدول عدة أمثلة لاستخدام الكلمة الأساسية LIKE وأحرف البدل [ ].
لحالتك:
... LIKE '%[_]d'
نصائح أخرى
من الواضح أن حل @Lasse هو الحل الصحيح، ولكن هناك طريقة أخرى لحل مشكلتك:مشغل T-SQL LIKE
يحدد الاختياري يهرب عبارة تتيح لك الإعلان عن الحرف الذي سيهرب من الحرف التالي إلى النمط.
بالنسبة لحالتك، فإن عبارات WHERE التالية متكافئة:
WHERE username LIKE '%[_]d'; -- @Lasse solution
WHERE username LIKE '%$_d' ESCAPE '$';
WHERE username LIKE '%^_d' ESCAPE '^';
هذه الحلول منطقية تمامًا.لسوء الحظ، لم يعمل أي منهما بالنسبة لي كما هو متوقع.بدلًا من محاولة إزعاجه، قمت بعمل ما يلي:
select * from information_schema.columns
where replace(table_name,'_','!') not like '%!%'
order by table_name
نجح هذا بالنسبة لي، فقط استخدم الهروب'%\_%'