2015-03-25 5 views
2

Как я могу сделать тип для сравнения значений в Laravel Fluent? Например, если у меня есть следующие MySQL:Как мне сделать тип в Laravel Fluent?

SELECT * from table1 WHERE CAST(`values` AS SIGNED) > $myVar 

Это то, что я в настоящее время после написания выше в Fluent:

$query = DB::connection('mysql')->table('table1') 
    ->where('values', '>', $myVar); 

В настоящее время база данных обрабатывает это как строка. Столбец таблицы должен храниться как varchar по другим причинам. Как я могу применить тип cast для этого конкретного запроса в Laravel Fluent?

ответ

3

непроверенная, но я считаю, что это должно работать:

$query = DB::connection('mysql')->table('table1') 
    ->where(DB::raw('CAST(values AS SIGNED)'), '>', $myVar); 
+0

Да, это работает. Думаю, это должно быть написано в сыром виде? – rotaercz

1

Также

$query= DB::connection('mysql') 
      ->table('table1') 
      ->whereRaw('CAST(values AS SIGNED) > '.$myVar); 

работает

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

  • Нет связанных вопросов^_^