简单地说,我想从数据库中获取具有一定大小的产品
每个产品都有尺寸栏:其中包含(例如):" XS,M,L"
我运行此声明
for i in itertools.takewhile(lambda x: x < 100, primes):
print i
例如,如果$ size =&#34; L&#34; ,它用&#34; L&#34;取出任何产品。或&#34; XL&#34;或&#34; XXL&#34; - 这与我的陈述一样正常
我现在问一下获取特定大小的方法
答案 0 :(得分:2)
我建议在其他表的不同行中使用商店值,以便查询。
虽然您使用find_in_set
whereRaw
执行此操作
DB::table('products')
->whereRaw("FIND_IN_SET('L',sizes)")
->paginate(1);
答案 1 :(得分:0)
如果您想获取确切的尺寸,可以尝试
return DB::table('products')->where(['sizes', $size])->paginate(1);
使用=
代替Like
。
对于更多用例,这里有不同的例子。
WHERE sizes LIKE 'L%' //Finds any values that starts with "L"
WHERE sizes LIKE '%L' //Finds any values that ends with "L"
WHERE sizes LIKE '%or%' //Finds any values that have "or" in any position
WHERE sizes LIKE '_r%' //Finds any values that have "r" in the second position
WHERE sizes LIKE 'a_%_%' //Finds any values that starts with "a" and are at least 3 characters in length
WHERE sizes LIKE 'a%o' //Finds any values that starts with "a" and ends with "o"
您的代码中也有拼写错误
更改此
return DB::table('products')->where([['sizes', 'LIKE', "%".$size."%"]])->paginate(1);
到此
return DB::table('products')->where('sizes', 'LIKE', "%".$size."%")->paginate(1);
希望这有帮助。