如何在cakephp 4中实现强制查询索引

33qvvth1  于 2022-11-11  发布在  PHP
关注(0)|答案(1)|浏览(153)

我是CakePHP新手,想知道如何在CakePHP 4中实现查询强制索引。
任何人能帮助我都将非常感激。

ymdaylpp

ymdaylpp1#

如果您没有使用自动引用(请参阅应用程序中的quoteIdentifiers选项datasource configuration),一个简单的解决方法可能会为您执行此操作,即将语句注入FROM子句,如下所示:

$query = $Table
    ->find()
    ->from($Table->getTable() . ' FORCE INDEX (foo_idx)');

这将生成如下SQL

SELECT ... FROM table_name FORCE INDEX (foo_idx)

但是,一旦使用了自动引用,就会出现这种情况,因为传递给from()的整个字符串都将包含在引号中,而不仅仅是表名。
如果您希望它与自动引用一起工作,那么您必须实现您自己的(扩展)驱动程序类、您自己的具有设置索引的API的查询类,以及您自己的查询编译器,该编译器将这些索引配置相应地编译为适当的SQL。
因此,没有过于简单的任务。除非您已经积累了足够的框架经验来实现和维护这样的自定义逻辑,否则通常最好使用自定义原始SQL查询来解决此类问题。

相关问题