Nano Hash - криптовалюты, майнинг, программирование

Codeigniter ActiveRecord дублирует, изменяет, выполняет запрос MySQL

Я использую библиотеку ActiveRecord, которая поставляется с фреймворком PHP CodeIgniter. Мне часто приходится запрашивать в базе данных количество строк, используя предложение LIMIT, но также мне нужно знать общее количество строк, которые я бы извлек, если бы не включил предложение LIMIT. Например, это часто бывает, когда я предоставляю страницы для многих результатов. Я хочу извлекать только 20 записей за раз, но мне также нужно знать, сколько всего строк соответствует моему запросу where. Мне нужно создать 2 немного разных запроса, запрос на подсчет:

SELECT * FROM table WHERE [where_clause];

И «выгружаемый» запрос:

SELECT * FROM table WHERE [where_clause] LIMIT 0,20;

Есть ли элегантное решение этой проблемы с помощью ActiveRecord? Кажется, нет ничего из коробки, что могло бы мне помочь. Очевидно, что я могу написать об этой проблеме с помощью моего собственного PHP, но было бы идеально, если бы я мог воспользоваться некоторыми аспектами библиотеки, чтобы не дублировать код и т. д.



Ответы:


1

Ответьте на мой собственный вопрос, лучший способ - использовать SQL_CALC_FOUND_ROWS вот так. Добавьте этот вызов select в свой запрос:

 $this->db->select('SQL_CALC_FOUND_ROWS *',false);

И затем сразу после этого, чтобы получить счет:

 $count = $this->db->query("SELECT FOUND_ROWS() AS count")->row('count');
15.07.2014
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..