我想在Laravel中使用查詢生成器編寫查詢。我有一個名爲'packages'
的表,它有一個列'activities'
。該列的值存儲爲序列化數組。例如a:1:{i:0;s:1:"2";}
。現在我想通過比較「活動」列中的值來搜索表格。例如,我將有一個數組$arr = array(0=>2, 1=>5, 2=>1)
我想將其與'activities'
列進行比較。使用序列化數組搜索表
$query = DB::table('packages');
$query = $query->where('activities', $arr);
$packages = $query->get();
它應該選擇所有至少有一個活動的行。即在上面的例子中,它應該選擇所有在其活動中至少有2,5或1的行。我想要使用Laravel Query Builder的解決方案。請幫忙。
我不認爲這是可能的使用serialize() function數組轉換成連載陣列。也許你應該嘗試使用JSON來代替varchar列。 https://laravel.com/docs/5.5/queries#json-where-clauses –
可能的重複[我如何從序列化字段在mysql數據庫中搜索?](https://stackoverflow.com/questions/24508164/how -do-i-search-from-serialize-field-in-mysql-database) – AZinkey
你應該將這些活動保存爲逗號分隔值,例如2,5,1,而不是序列化字符串 – AZinkey