Как я могу получить первые 4 самых высоких значения?

-1

Я хотел найти 5 лучших данных о студентах, у которых нет самого высокого уровня посещаемости в классе. Чтобы получить, я использовал следующий запрос. Но проблема заключается в том, что учащиеся имеют attendance_count как 7 9 12 15 1 10, хотя она должна возвращать 9 10 12 15, она возвращает 9 7 15 12 (attendance_count) детали ученика. Как я могу решить проблему?

$students = DB::table('students')                
            ->select('students.*')   
            ->orderBy('students.attendance_count', 'desc') 
            ->limit(4)             
            ->where('students.status','=','1') 
            ->get(); 
  • 7
    Ваша колонка базы данных может быть varchar? Измените его на целое число.
  • 0
    Вы сохраняете это как целое число? или, может быть, вы создали поле var_char. если у вас есть символ пробела где-то, это испортит порядок.
Показать ещё 2 комментария
Теги:

3 ответа

0

Пожалуйста, убедитесь, что тип столбца для students.attendance_count в Integer и напишите запрос следующим образом.

$students = DB::table('students')                
            ->select('students.*')              
            ->where('students.status','=','1') 
            ->orderBy('students.attendance_count', 'desc') 
            ->limit(4)  
            ->get(); 

Его хорошо писать orderBy и limit после того, как, where состояние.

0

Порядок by должен использоваться после предложения where и перед лимитной оговоркой, которая решит вашу проблему

select student.*
from students
where status=1
order by attendence desc
limit 4;
  • 0
    limit уже есть.
  • 0
    Ограничение уже есть. Но как только вы заказали его, только вы должны ограничить его, если вы ограничите его до того, что он получит первые 4 строки таблицы, а не 4 строки с максимальной посещаемостью, надеюсь, вы поняли мою точку зрения
Показать ещё 3 комментария
0

Вы можете добиться числового преобразования, подобного этому

->orderBy('students.attendance_count+0', 'desc')

Ещё вопросы

Сообщество Overcoder
Наверх
Меню