Как сортировать по текстовому полю varchar() по числу.

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 5 сентября 2017 в 22:07
Всем привет. Как сортировать по текстовому полю varchar() по числу? Ветка 2*

  1. $rating_fiba = $this->model->orderBy('user_rank', 'desc')->getSportFibaRank();
— это поле varchar 255. Спасибо!

Нужно сортировать

— 23,770
— 25,660
— 9,500
— 80,600
и тд.
#2 5 сентября 2017 в 22:28

Всем привет. Как сортировать по текстовому полю varchar() по числу? Ветка 2*

Нико
Первый вопрос — почему вы решили хранить числовые данные в типе varchar, а не float или int?

Ну да ладно, даже если так, то нужно привести сначала к int (если целые числа), а потом сортировать.
Почитайте тут про приведение типов в mysql — перейти. Надо пробовать, код не буду писать готовый…
#3 5 сентября 2017 в 22:30


Всем привет. Как сортировать по текстовому полю varchar() по числу? Ветка 2*

Нико
Первый вопрос — почему вы решили хранить числовые данные в типе varchar, а не float или int?

Ну да ладно, даже если так, то нужно привести сначала к int (если целые числа), а потом сортировать.
Почитайте тут про приведение типов в mysql — перейти. Надо пробовать, код не буду писать готовый..

@SmartControl

Я просто беру данные из другого сайта там используется "," а в in не хранится запятые сразу первые числа сохраняются. до запятой.
#4 6 сентября 2017 в 01:16

Я просто беру данные из другого сайта там используется ","

Нико
Хорошо, но вы же данные сами в свою базу кладете? — зачем же вам эти запятые. Убирайте и храните числа. Меньше проблем будет.
#5 6 сентября 2017 в 01:19


Я просто беру данные из другого сайта там используется ","

Нико
Хорошо, но вы же данные сами в свою базу кладете? — зачем же вам эти запятые. Убирайте и храните числа. Меньше проблем будет.

@SmartControl

Я кладу данные через функцию

  1. function strGetHtml($html){
  2.  
  3. require_once(PATH.'/simple_html_dom.php');
  4. $html = str_get_html($html);
  5. $courses = $html->find('.PlayerProfile-Rankings');
  6. foreach($courses as $course) {
  7. $res = $course->find('p', 0);
  8. $result = $res->text(); (данные тут) это число например 23,444 как ее занести без запятой, а с точкой?
  9. }
  10.  
  11. return $result;
  12. }
#6 6 сентября 2017 в 08:36
Нико, "строковые функции php" в поиске наберите.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.