2016-05-17 111 views
1

我必须获得通过符号号码范围内的行。Laravel 5.1雄辩的地方之间不按预期工作

Image of Table from where query is to be done

查询:

Mark::select('users_id', 'symbol_no', 'mark_obtained') 
     ->where('subject_trade_id', 2) 
     ->whereBetween('symbol_no', [100, 1000]) 
     ->orderBy('symbol_no') 
     ->get(); 

该查询返回的数据,但我期待共有9行形成查询。 如果我转储查询,我发现预期的查询。

Query Log Image

如果我运行生成的查询mysql然后炒菜的罚款。

同样,如果我更改了符号no。范围是这样的:

Mark::select('users_id', 'symbol_no', 'mark_obtained') 
     ->where('subject_trade_id', 2) 
     ->whereBetween('symbol_no', [10, 1011]) 
     ->orderBy('symbol_no') 
     ->get(); 

它返回2行这一次,这输出也是错误的。

如果我尝试改变符号号。范围和查询是这样的:

Mark::select('users_id', 'symbol_no', 'mark_obtained') 
     ->where('subject_trade_id', 2) 
     ->whereBetween('symbol_no', [101, 200]) 
     ->orderBy('symbol_no') 
     ->get(); 

现在它正常工作正常。

+1

您能否提供有关您收到的任何错误或为什么此代码不适合您的信息? – Scopey

+0

首先抱歉,我第一次发布了不完整的任务。现在完成,所以你现在可以知道实际的问题。 它不会返回任何错误。只是银行收款对象。 –

回答

1

实测值的symbol_no的柱规定为varchar(),它必须是int(),因此,whereBetween()已暂时无法返回预期的数据的问题

通过错误。

0

我面临同样的问题..您可以检查数据库表中的“symbol_no”字段类型,它应该是数字/整数。

+0

谢谢@AKO你是对的,列字段类型是问题的原因。花了几个小时才发现问题。 –