like e full text search
1.0.0
像操作员在其中的子句中使用类似的操作员来搜索列中指定的标准。
$ 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 " )