mysql - Zend Framework 1 数据库抽象:MySQL 的 USE INDEX/FORCE INDEX 的实现?
问题描述
我尝试 FORCE INDEX FOR JOIN ( PRIMARY
) 并没有找到明确的答案这是否在 ZF1 中实现并决定在这里问:这是否实现了,你能给出使用示例吗?https://github.com/zendframework/zf1/issues/489
我尝试使用这样的方法:
$this->db->select()->forceIndex('PRIMARY')->from('somefield')->..
但这会返回一个错误:
Unrecognized method 'forceIndex()'
而且我仍然不确定我是否尝试不正确地使用它,或者它根本没有实现。
解决方案
您可以使用 join() 和 where() 函数来执行此类任务:
$select = $this->select()->from(array('c' => 'cities'),array('*'));
$select->distinct();
$select->join(array('l' => 'cities_lang'), 'c.id=l.city_id', array());
$select->where('l.locale_code = ?', $locale);
$select->where('l.city_name LIKE ?', $like);
$select->order('(l.city_name = ' . $db->quote($query) . ') DESC');
$select->limit($perpage, ($page-1)*$perpage);
$this->fetchAll($select);
推荐阅读
- android - 在 Android 智能手表上记录数据时出现随机间隙
- django - 在 Django 网站中显示通过 GraphQL 检索到的数据
- java - jax-rs 2.1 如何处理来自上游 api 的 422 响应?
- ms-word - Microsoft Office 版本具有 DCOM 对象
- docker-compose - Docker-compose 在 crontab 中
- javascript - Javascript将对象附加到对象
- django - uuid.uuid4() 不在 DJango 表单中创建随机 UUID
- c# - WPF DevExpress HamburgerMenu ItemTemplateSelector 容器为空
- spring - 使用 TransactionalOperator 进行单元测试超时(Kotlin 协程)
- angular - 从 Angular 8 更新到 Angular 11 后,Angular 的服务器端渲染停止工作