Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Elount或fluent从查询结果向数据库表添加值_Php_Sql_Laravel_Eloquent - Fatal编程技术网

Php 使用Elount或fluent从查询结果向数据库表添加值

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

上面的查询从表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|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。我希望你能给出正确的语法,因为我在实现上有问题。