مثل المشغل يستخدم في شرط حيث للبحث عن معيار محدد في عمود.
$ conn = require __DIR__ . ' /utils/connection.php ' ;
$ term = $ argv [ 1 ] ?? null ;
$ term = ' % ' . $ term . ' % ' ;
** $ stmt = $ conn -> prepare ( ' SELECT * FROM posts WHERE body LIKE ?; ' );
$ stmt -> bind_param ( ' s ' , $ term );
$ stmt -> execute ();**
$ result = $ stmt -> get_result ();
$ posts = $ result -> fetch_all ( MYSQLI_ASSOC );
foreach ( $ posts as $ post ) {
echo $ post [ ' title ' ]. PHP_EOL ;
echo $ post [ ' body ' ]. PHP_EOL ;
echo PHP_EOL ;
}نريد اختيار الأشخاص الذين يعيشون في مدينة تبدأ بـ 's':
1:SELECT * FROM Pessoas
2:WHERE cidade LIKE 'S%'
يمكن استخدام رمز ٪ لتحديد نمط (الحروف المفقودة في المعيار) قبل وبعد المعيار. ستكون نتيجة البحث أعلاه:
الآن نريد اختيار الأشخاص الذين يعيشون في مدينة ينتهي اسمها بـ 's':
1:SELECT * FROM Pessoas
2:WHERE cidade LIKE '%s'
ستكون نتيجة هذا البحث:
لإجراء البحوث من خلال مؤشر النص الكامل ، نستخدم المباراة وضد الوظائف ، والتي تم تسميتها على اسم الحقول والقيمة المراد البحث فيها ، على التوالي. انظر المثال:
$ stmt = $ conn -> prepare ( ' SELECT *, MATCH(title, body) AGAINST(? IN BOOLEAN MODE) as score FROM posts ORDER BY score DESC ; ' );
$ stmt -> bind_param ( ' s ' , $ term );
$ stmt -> execute ();المباراة: بناء خاص يستخدم لإجراء بحث نصي كامل على فهرس النص الكامل. عند استخدام MATCH () في جملة ، كما هو الحال في المثال الموضح سابقًا ، يتم تصنيف الخطوط التي تم إرجاعها تلقائيًا بأكثر أهمية أولاً . قيم الأهمية هي أرقام نقاط عائمة غير سلبية. لا توجد صلة يعني أي تشابه. يتم حساب الأهمية بناءً على عدد الكلمات الموجودة على السطر (المستند) ، وعدد الكلمات الفريدة على السطر ، وعدد الكلمات في المجموعة ، وعدد الخطوط التي تحتوي على كلمة محددة .
محتوى البحث:
INSERT INTO posts (title, body) VALUES
( " Laravel framework " , " O laravel é muito utilizado hoje em dia " ),
( " CakePHP " , " Framework de desenvolvimento rápido " ),
( " Slim Framework " , " Micro framework, podemos utilizar o Eloquent do laravel nele " )