আপনি কীভাবে LIKE
একটি db_select()
ক্যোয়ারিতে একটি শর্ত তৈরি করবেন ?
আমি জানি db_query()
এপিআই কল দিয়ে এটি কীভাবে করা যায় তবে এটি করার জন্য কি কোনও বিশেষ বাক্য গঠন / পদ্ধতি আছে db_select()
?
আপনি কীভাবে LIKE
একটি db_select()
ক্যোয়ারিতে একটি শর্ত তৈরি করবেন ?
আমি জানি db_query()
এপিআই কল দিয়ে এটি কীভাবে করা যায় তবে এটি করার জন্য কি কোনও বিশেষ বাক্য গঠন / পদ্ধতি আছে db_select()
?
উত্তর:
ড্রুপাল ডকুমেন্টেশনের মাধ্যমে খননের পরে db_ Like এপিআই ডকুমেন্টেশন পৃষ্ঠা এবং সিলেক্ট কোয়েরিতে: শর্ত হ্যান্ডলার ডক পৃষ্ঠায় একটি সমাধান পাওয়া গেল ..
উদাহরণ স্বরূপ
$result = db_select('field_data_field_name', 'f')->fields('f', array(
'entity_id',
'field_name_value'
))
->condition('entity_type', 'user')
->condition('bundle', 'user')
->condition('deleted', 0)
->condition('field_name_value', '%' . db_like($last_item) . '%', 'LIKE')
->distinct()
->range(0, 10)
->execute();
লাইক ক্যোয়ারির জন্য ব্যবহারের শর্তটি
->condition('field_name_value', '%' . db_like($last_item) . '%', 'LIKE')
db_like()
যুক্তিটি সঠিকভাবে পালাতে হবে এবং (2) আপনার স্পষ্টতই ওয়াইল্ডকার্ডের অক্ষর যুক্ত করতে হবে। এটি ডেটাবেজে ডিফল্ট কোলেশন ব্যবহার করবে এবং আমি মনে করি না যে আলাদা করার কোনও উপায় আছে।
"LIKE" ক্যোয়ারী তৈরি করার সময় আপনি ড্রুপাল ore কোর \ ডাটাবেস \ ডাটাবেসও ব্যবহার করতে পারেন। এটি ড্রুপাল 8 বিকল্প সিনট্যাক্স যেহেতু db_select () অবমূল্যায়িত হয়েছে।
$database = Database::getConnection();
$query = $database->select('TABLE NAME', 'u')
->fields('u', array('column1','column2'));
$query->condition('column1', '%'.$database->escapeLike($search_phrase) . '%', 'LIKE');
অথবা ওআর ক্যোয়ারির সাথে একাধিক যুক্ত করুন।
$DB_OR = $query->orConditionGroup()
// find match anywhere in field
->condition('column1', '%' . $database->escapeLike($search_phrase) . '%', 'LIKE')
// find match starting at beginning
->condition('column2', $database->escapeLike($search_phrase) . '%', 'LIKE');
// find match at end of field
->condition('column1', '%' . $database->escapeLike($search_phrase), 'LIKE')
$query->condition($DB_OR); // Add OR object as condition
$result = $query->execute();
"লাইক" ব্যবহারের জন্য db_select
নীচের মত এবং আমার জন্য কাজ করেছে ...
$search_value = "testvalue@xmail.com";
$query = db_select('TABLE NAME', 'u');
$query->fields('u', ['ROW1', 'ROW2']);
$query->condition('ROW1', '%' . db_like($search_value) . '%', 'LIKE');
$result = $query->execute();
এখানে ROW1 এর সঠিক মান হ'ল "testvalue@xmail.com" এবং LIKE
শর্তটি ব্যবহার করে db_select
আমি আউটপুটটিকে "testvalue@xmail.com" হিসাবে পেয়েছি।
এটি ড্রুপাল 8 সংস্করণ 1 এ কাজ করে
$exp = "1";
$connection = \Drupal::database();
$query = $connection ->select('node', 'n');
$query->fields('n');
$query->condition('nid', '%'.db_like($exp), 'LIKE');
$records = $query->execute();
foreach ($records as $record) {
ksm($record);
}
সংস্করণ 2
$connection = \Drupal::database();
$query = $connection->query("SELECT *FROM {node} WHERE nid like '%' :nid '%'", [
':nid' => "1",
]);
$records = $query->fetchAll();
foreach ($records as $record) {
ksm($record);
}
db_query
করতে পারেন, আপনি এটিতে যুক্তি হিসাবেও পাস করতে পারেন...Query::condition
। প্রতিটি পৃথক প্রকারের ক্যোয়ারির জন্য আপনি প্রতিটি পৃথক অপারেটরের জন্য ডকুমেন্টেশন পাবেন না, কারণ এটি করার অর্থ হবে না। এটি সমস্ত দিন শেষে PDO এর মধ্য দিয়ে যায়, যদিdb_like
কোনও ভেরিয়েবলটি সঠিকভাবে প্রস্তুত করেdb_query
, তবে সংজ্ঞা অনুসারে এটি একই ভেরিয়েবলটি সঠিকভাবে প্রস্তুত করবেdb_select