2017-01-30 2 views
1

Я пытаюсь извлечь значение из моей таблицы, где цена больше, чем 500. Я попытался следующий синтаксис:Операнды не работают должным образом. Laravel

$vehicles=vehicles::where('price','>',500)->get()->first(); 

Но она возвращается пустое значение. У меня цена выше 500 в моем столе.

Странное дело, когда я запрашиваю следующий

$vehicles=vehicles::where('price','<',500)->get()->first(); 

Он возвращается значение. Этого не должно быть, потому что у меня нет цены меньше 500. Может ли кто-нибудь мне помочь?

I have attached values of price of my table

+0

Вы проверили запрос mysql для того же самого. т. е. распечатать запрос mysql для вашего оператора один раз. –

+0

В этом случае используйте ** DB :: enableQueryLog(); **, чтобы получить запрос и запустить его в своем терминале mysql, и проверить, что происходит –

+0

@jyotimishra, когда я сделал SELECT * FROM 'vehicles' WHERE' price'> 500 'в mysql. он возвращает требуемую стоимость. – Anon

ответ

0

Попробуйте

vehicles::where('price','>',500)->orderBy('price','ASC')->first(); 

Он даст вам первый ряд, цена которого стоит> 500. Измените свой тип строки как int (11).

Он работает менее чем 500 запроса, так как он будет конвертировать строку в цену целого и целого строки равно 0. Затем, когда вы будете запускать < 500 запроса, то да. нуль, очевидно, меньше 500.

+0

Нет, это не работает. – Anon

+0

произошла одна синтаксическая ошибка. вы можете попробовать сейчас. – Vikash

+0

введите тип данных integer int (11) – Vikash

2

не нашли какой-либо вопрос в вашем где состоянии. Для получения списка всех транспортных средств с ценой> 500 вы должны использовать:

$vehicles = vehicles::where(convert(integer, price),'>',500)->get(); 

Для получения одного транспортного средства с ценой> 500 вы должны использовать:

$vehicles=vehicles::where(convert(integer, price),'>',500)->first(); 
+0

Нет, не работает. По-прежнему возвращает пустое значение. [] – Anon

+0

Что такое тип поля цены? @Anon – mith

+0

Его строка. @mith – Anon

Смежные вопросы