Php 使用Elount或fluent从查询结果向数据库表添加值
上面的查询从表1生成以下结果:Php 使用Elount或fluent从查询结果向数据库表添加值,php,sql,laravel,eloquent,Php,Sql,Laravel,Eloquent,上面的查询从表1生成以下结果: $query = SubjectUser::where('user_id', Auth::id())->select('subjectlist_name')->get(); 我还有一张桌子,看起来像这样: 表二 [{"subjectlist_name":football},{"subjectlist_name":cricket}, {"subjectlist_name":tennis},{"subjectlist_name":f1}] ID|sec
$query = SubjectUser::where('user_id', Auth::id())->select('subjectlist_name')->get();
我还有一张桌子,看起来像这样:
表二
[{"subjectlist_name":football},{"subjectlist_name":cricket},
{"subjectlist_name":tennis},{"subjectlist_name":f1}]
ID|second_user_id|topic |mark(enum '0','1')
1 | 2 |football |0
2 | 2 |tennis |0
3 | 2 |f1 |0
4 | 2 |Rugby |0
现在,我想迭代查询结果,检查匹配的主题,并标记匹配的主题,以便第二个表如下所示:
表二
[{"subjectlist_name":football},{"subjectlist_name":cricket},
{"subjectlist_name":tennis},{"subjectlist_name":f1}]
ID|second_user_id|topic |mark(enum '0','1')
1 | 2 |football |0
2 | 2 |tennis |0
3 | 2 |f1 |0
4 | 2 |Rugby |0
我的问题是,我不确定需要多少
subjectlist\u name
,因此想知道是否有一种优雅的方法来解决这个问题?这确实取决于您所期望的负载。如果这是一个罕见的用例,并且你的站点上没有大量的流量,那么我可能会考虑使用这样的SQL查询:
ID|second_user_id|topic |mark(enum '0','1')
1 | 2 |football |1
2 | 2 |tennis |1
3 | 2 |f1 |1
4 | 2 |Rugby |0
但是,在这种情况下,请注意,您应该有一些索引来执行这些操作
也请考虑“不确定有多少个主题名称要期待”:只需检查一个大概的数字:是否有可能超过1000?如果没有,那么您可能无论如何都不需要区块。这将使代码更简单,更容易为每个人理解
好的,我知道你从哪里来了。我只是在做原型,所以我猜主题名称应该是一个小数字,比如15。我希望你能给出正确的语法,因为我在实现上有问题。