Laravel 5.1 数据库添加索引之后,数据查询不出,什么原因?
昨天数据库进行优化,对表的两个字段添加了索引。
创建索引的SQL情况如下:ALTER TABLE inventory ADD KEY inventory_gid_sstatu(gid,sstatu);
使用 Laravel 5.1 ,MySQL 5.6
// iid 主键 ,gid 类似商品id , sstatu 卖出的状态 oid是账单号
Inventory::orderBy(isset($data['sort'])?$data['sort']:"iid",isset($data['order'])?$data['order']:"asc")
->where(function($query) use($data){
if(isset($data['gid']) && $data['gid'] != ''){
$query->where('gid',$data['gid']);
}
if(isset($data['sstatu']) && $data['sstatu'] != ''){
$query->where('sstatu',$data['sstatu'] == 0 ?false:true);
}
if(isset($data['oid']) && $data['oid'] != ''){
$query->where('oid',$data['oid']);
}
})->paginate($data['rows']);
有
array_get
写那么多 isset 不累嘛@Ryan 其实我是 java 程序员,后来没办法,没有系统学过 php 。
找见错误原因了,但是还是不了解怎么回事。
sstatu
字段,数据库类型为bit
,bit
应该就是 “0” 或者 “1”,之前查询的出来,后来添加索引不行了,应该就是这个类型的原因。将查询条件改为这个样子,就好了。
@KubiLi
0
和1
这样的数据可以用tinyint(1)
类型存储