سؤال

أحاول تنفيذ جملة LIKE في استعلام sqlite3 الخاص بي، على سبيل المثال.

sqlStatement = [NSString stringWithFormate;@"select * from table_name where column_name like '%"+%@+"%'",title];

هنا عنوان هو نوع NSString.لها قيم مثل 6 كيلوطن أو 10 كيلوطن أو 14 كيلوطن أو 18 كيلوطن

و في اسم العمود لدي قيم مثل هذا (6 عقدة، 10 عقدة، 14 عقدة) في عبارة واحدة

 |------------------------|
 |     column_name        |
 |------------------------|
 |   6 Kt, 10 Kt, 14 Kt   |
 | --------------------   |
 |   10 Kt, 18 Kt, 22 Kt  |
 | ---------------------  |
 |   6 Kt, 10 Kt, 24 Kt   |
 | ---------------------  |
 |   6 Kt, 14 Kt, 22 Kt   |
 | ---------------------- |
 |   6 Kt, 22 Kt, 24 Kt   | 
 | -----------------------|

وأحاول استعلامًا آخر مثل هذا:

sqlStatement = [NSString stringWithFormat:@"select * from jewelryInfo where karat like '%@%%'",title];

بقيمة العنوان = 6 كيلوطن.

تكنولوجيا المعلومات تعطي قيم صف يبدأ بـ 6 كيلوطن

ولكن عندما أحاول استخدامها 18 عقدة أو 22 عقدة كقيمة ل عنوان

لا يعطيني أي نتيجة

أعتقد أنه يتم فقط التحقق من القيمة الأولى للصف في هذا العمود.

الرجاء مساعدتي، شكرا

هل كانت مفيدة؟

المحلول

يجب عليك إضافة أ % قبل الاستعلام.ويجب عليك أيضًا استخدام الاستعلام التالي:

sqlStatement = [NSString stringWithFormat:@"select * from jewelryInfo where ', '||karat like '%% %@%%'",title];

لمطابقة العناصر الموجودة في منتصف القائمة أو بدايتها أو نهايتها ومطابقة 6 ولكن ليس 16.

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