我必须在传递符号no。
的范围内获取行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行。 如果我转储查询,我会按预期找到查询。
如果我将生成的查询运行到mysql
,那么它就可以了。
再次,如果我更改符号否。范围是这样的:
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();
现在它按预期正常工作。
答案 0 :(得分:1)
发现问题
错误地,symbol_no列被定义为varchar(),它必须是int()所以,whereBetween()无法返回预期的数据。
答案 1 :(得分:0)
我遇到同样的问题..请你检查" symbol_no"数据库表中的字段类型,应为数字/整数。