Упорядочить по номеру, даже если тип столбца - строка, Laravel - PullRequest
0 голосов
/ 29 мая 2020

У меня есть строковый столбец, но у меня только двойные числа (возраст), и я хочу сделать заказ по, но очевидная проблема заключается в том, что я получаю неправильный ответ, потому что это строка. пример: (1,10,2,3,4,40, et c ...). В моем коде $ table = имя таблицы, sort_by, в данном конкретном случае - "age".

$query->orderBy("CAST(" . $table . $request->sort_by . "as NUMERIC)", 'ASC');

Ошибка:

Неопределенная таблица: 7 ОШИБКА: отсутствует ОТ запись -пункт для таблицы "CAST (people" ↵LINE 1:

1 Ответ

1 голос
/ 29 мая 2020

Используйте orderByRaw и преобразуйте текстовое число в целое число:

$query->orderByRaw("age::int")

Обратите внимание, что если у вас есть постоянная необходимость использовать этот столбец с текстовым номером в качестве фактических данных numeri c, это может означать проблема дизайна, и, возможно, столбец действительно должен быть целым числом в вашей Postgres таблице.

...