W scenariuszu potrzebuję znać liczbę zestawów rekordów, które zwróci zapytanie w kodzie źródłowym wykonane przez $query->num_rows()
lub $this->db->count_all_results()
. Który z nich jest lepszy i jaka jest różnica między tymi dwoma?
Odpowiedz
Po wprowadzeniu num_rows()
najpierw wykonujesz zapytanie, a następnie możesz sprawdzić, ile masz wierszy. count_all_results()
z drugiej strony podaje tylko liczbę wierszy, które wygeneruje twoje zapytanie, ale nie daje rzeczywistego zestawu wyników.
// num rows example
$this->db->select('*');
$this->db->where('whatever');
$query = $this->db->get('table');
$num = $query->num_rows();
// here you can do something with $query
// count all example
$this->db->where('whatever');
$num = $this->db->count_all_results('table');
// here you only have $num, no $query
$this->db->count_all_results
jest częścią Active Record zapytania (przygotowuje zapytanie, tylko zwrócić liczbę, a nie rzeczywiste wyniki).
$query->num_rows()
jest wykonywany na resultset object (po zwrocie wyników z DB).
więc wydaje mi się, że lepiej użyć 'if ($ this-> db-> count_all_results()> 0 {// rzeczy}}? – Kumar
Jeśli wszystko, co Cię interesuje, to liczba znalezionych wyników, to tak –
Which one is better and what is the difference between these two
To prawie nie do przyjęcia, ktoś po prostu chce uzyskać liczbę rekordów bez ponownego dotykania lub wykonać inne zapytanie, które dotyczyło tego samego zasobu. Co więcej, pamięć używana przez te dwie funkcje jest w końcu taka sama, ponieważ z count_all_result
nadal wykonujesz get
(w kategoriach CI AR), więc polecam ci używanie drugiej (lub użycie count() zamiast), która dała ci możliwość ponownego użycia korzyści.
Istnieją dwa sposoby zliczania łącznej liczby rekordów, które zwróci zapytanie. Pierwszy to
$query = $this->db->query('select blah blah');
return $query->num_rows();
ten powróci liczbę wierszy zapytania wniesione.
drugie
return $this->db->count_all_results('select blah blah');
Wystarczy count_all_results będzie wymagać, aby ponownie uruchomić kwerendę.
Pierwsza nie działa w moim przypadku. –
Możemy również użyć
return count_all('table_name');
lub
$this->db->from('table_name');
return $this->db->count_all_result();
lub
$query = $this->db->query('select * from tab');
return $query->num_rows();
Łączna liczba wyników
$this->db->count_all_results('table name');
Po prostu jak poniżej;
$this->db->get('table_name')->num_rows();
Otrzyma liczbę rzędów/rekordów. jednak możesz również użyć parametrów wyszukiwania;
$this->db->select('col1','col2')->where('col'=>'crieterion')->get('table_name')->num_rows();
Należy jednak zauważyć, że pojawią się złe, złe błędy, jeśli zostaną zastosowane jak poniżej;
$this->db->get('table_name')->result()->num_rows();
- 1. CodeIgniter count_all_results
- 2. problem z „count_all_results” i „gdzie” z Active Record w CodeIgniter
- 3. Jaka jest różnica między ajax i jquery, a która z nich jest lepsza?
- 4. Różnica między "i" w Lua
- 5. Różnica między zsynchronizowanym blokiem z oczekiwaniem/powiadomieniem i bez nich?
- 6. Jaka jest różnica między & # x00A0; i ?
- 7. MySQL: Różnica między ",", "i"
- 8. Jaka jest różnica między? : i ||
- 9. Jaka jest różnica między "CompletionStage" i "CompletableFuture"?
- 10. Jaka jest różnica między $ i $$?
- 11. Jest: Różnica między --runInBand i --maxWorkers 1
- 12. Jaka jest różnica między Lazarus i CodeTyphon
- 13. Jaka jest różnica między DetachedCriteria i ICriteria
- 14. Jaka jest różnica między bundle.setup i bundle.require
- 15. Jaka jest różnica między asersem i static_assert?
- 16. Jaka jest różnica między strcmp() i strcoll()?
- 17. Jaka jest różnica między FacesContext i ExternalContext
- 18. Różnica między dexopt i dex2oat?
- 19. Jaka jest różnica między developer.paypal.com i x.com?
- 20. Jaka jest różnica między NetFx45WebLink i NetFx45RedistLink
- 21. Jaka jest różnica między = i: = w mysql?
- 22. Jaka jest różnica między! = I =! w Javie?
- 23. Jaka jest różnica między 'i "w PHP
- 24. Jaka jest różnica między! i !! w yaml?
- 25. jaka jest różnica między @ i @@ w module?
- 26. Jaka jest różnica między * i. * W Matlab?
- 27. Jaka jest różnica między | i || w MATLAB?
- 28. Jaka jest różnica między * i * | * w CSS?
- 29. C++ różnica między ** i * w przekazywaniu parametrów
- 30. Jaka jest różnica między NSPhotoLibraryAddUsageDescription i NSPhotoLibraryUsageDescription?
prawo, chyba będę używać 'count_all_results', muszę liczyć w paginacji, dzięki tony :) – Kumar
' count_all_results' jest o wiele lepiej, jeśli patrząc z punktu widzenia optymalizacji. –