سؤال

كيف يمكنني الهروب من حرف الشرطة السفلية؟

أنا أكتب شيئًا مثل جملة حيث التالية وأريد أن أتمكن من العثور على الإدخالات الفعلية مع _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

نجح هذا بالنسبة لي، فقط استخدم الهروب'%\_%'

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top