RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-431597

Igor's questions

Martin Hope
Igor
Asked: 2024-12-10 01:09:42 +0000 UTC

分组时如何得到正确的排序?

  • 5

有源数据按ID排序

ID 书号
306 51
305 48
304 51
303 48
第302章 51
301 51
300 13

MySQL:SELECT id, book_id FROM chapters ORDER BY id DESC LIMIT 5;

拉拉维尔:Chapter::select('id', 'book_id')->orderBy('id', 'DESC')->take(5)->get();

现在一切都是正确的,但没有分组。

向请求添加分组:

MySQL:SELECT id, book_id FROM chapters group by book_id ORDER BY id DESC LIMIT 5;

拉拉维尔:Chapter::select('id', 'book_id')->groupBy('book_id')->orderBy('id', 'DESC')->take(5)->get();

我们到达出口

ID 书号
303 48
301 51
300 13
... ...

问题:如何以这样的方式(MySQL 或 Laravel)构造一个查询,使输出按“id”精确排序并且没有重复的“book_id”?

也就是说,相对于源表,您需要得到如下内容:

ID 书号
306 51
305 48
300 13
... ...
sql
  • 1 个回答
  • 38 Views
Martin Hope
Igor
Asked: 2024-05-09 19:10:45 +0000 UTC

如何在 Laravel 中创建具有多对多关系的数据库记录?

  • 6

有一个模型Post,在其中我创建了与流派表的多对多关系

class Post extends Model
{
    use HasFactory;

    protected $guarded = false;

    public function genres(): BelongsToMany
    {
        return $this->belongsToMany(Genres::class);
    }
}

store我向控制器方法发出发布请求PostContoller并验证输入数据StoreRequest

public function store(StoreRequest $request)
{
    $data = $request->validated();

    $post = Post::create($data);

    return PostResource::make($post)->resolve();
}

表迁移posts|genres|genre_post看起来像这样 posts

Schema::create('posts', function (Blueprint $table) {
    $table->id();

    $table->string('alias')->nullable()->unique();

    $table->string('title', 512)->nullable();
    $table->year('year')->nullable();
    $table->text('description')->nullable();

    $table->timestamps();
});

genres

Schema::create('genres', function (Blueprint $table) {
    $table->tinyIncrements('id');
    $table->string('name');
});

genre_post

Schema::create('genre_post', function (Blueprint $table) {

    $table->unsignedBigInteger('post_id')->nullable();
    $table->foreign('post_id')->references('id')->on('posts')->onDelete('cascade');

    $table->unsignedTinyInteger('genre_id')->nullable();
    $table->foreign('genre_id')->references('id')->on('genres')->onDelete('cascade');

});

当我尝试创建记录时出现错误 SQLSTATE[42S22]: Column not found: 1054 Unknown column 'genres' in 'field list'

我知道posts我的表中没有字段genres,但是我该如何做,以便在验证字段后,我可以简单地发送日期以类似的方式创建帖子Post::create($data)?是否有可能做到这一点以及如何通过关系来实现它?

否则我真的不想写这样的脚布(而且我认为这是不正确的):

if ($title = $request->has('title')) {
    // ...
}
if ($genres = $request->has('genres')) {
    foreach(explode(',', $genres) as $genre) {
        $this->post->genres()->attach($genre, [
            'post_id' => $post_id,
            'genre_id' => $genre
        ]);
    }
}
laravel
  • 1 个回答
  • 20 Views
Martin Hope
Igor
Asked: 2022-08-10 23:34:17 +0000 UTC

在对象数组中找到相同的值

  • 2

我有一个对象数组,例如:

let data = [
    { id: 1, page: 1, duplicate: false },
    { id: 2, page: 2, duplicate: false },
    { id: 3, page: 3, duplicate: false },
    { id: 4, page: 3, duplicate: false },
    { id: 5, page: 4, duplicate: false },
    { id: 6, page: 5, duplicate: false },
    { id: 7, page: 5, duplicate: false },
    { id: 8, page: 6, duplicate: false }]

我无法解决 2 个问题:

  1. 您需要找到所有相同的“页面”值并将“重复”更改为true,即对于ID = 3、4、6和7的对象,使“重复”键的值等于真的。
  2. 创建一个包含重复 ID 列表的新数组,即:[3, 4, 6, 7]

结果,你需要得到两个数组:

首先(修改原件):

  data = [
    { id: 1, page: 1, duplicate: false },
    { id: 2, page: 2, duplicate: false },
    { id: 3, page: 3, duplicate: true },
    { id: 4, page: 3, duplicate: true  },
    { id: 5, page: 4, duplicate: false },
    { id: 6, page: 5, duplicate: true },
    { id: 7, page: 5, duplicate: true },
    { id: 8, page: 6, duplicate: false }
  ]

其次,一个带有 ID 列表的新的:

duplicateIds = [3,4,6,7]
javascript
  • 4 个回答
  • 10 Views
Martin Hope
Igor
Asked: 2022-05-10 23:24:30 +0000 UTC

如何通过相同的对象值合并同一数组的对象?

  • 0

我们有一个包含对象的数组:

[{
    "id": 326277,
    "part": 2,
    "coll": "231.5"
  },
  {
    "id": 326278,
    "part": 2,
    "coll": "231"
  },
  {
    "id": 326279,
    "part": 2,
    "coll": "231"
  },
  {
    "id": 326280,
    "part": 2,
    "coll": "230"
  }
]

可以看到,有相同的“coll”值​​​\u200b\u200b231,如何转换数组使得具有相同“coll”值的对象\u200b\u200bare合并为一个数组,如在下面的示例中:

[
  [{
    "id": 326277,
    "part": 2,
    "coll": "231.5"
  }],
  [{
      "id": 326278,
      "part": 2,
      "coll": "231"
    },
    {
      "id": 326279,
      "part": 2,
      "coll": "231"
    }
  ],
  [{
    "id": 326280,
    "part": 2,
    "coll": "230"
  }]
]
javascript
  • 1 个回答
  • 10 Views
Martin Hope
Igor
Asked: 2022-09-21 14:51:51 +0000 UTC

如何构建一个查询来计算评级表中的每个值?

  • 1

有一个ratings五星级评级表,其中包含以下列值:

Schema::create('ratings', function (Blueprint $table) {
        $table->bigIncrements('id')->unsigned(); //автоинкремент
        $table->integer('id_post')->unsigned(); // id публикации
        $table->integer('id_user')->unsigned()->nullable(); // id пользователя
        $table->unsignedTinyInteger('rating'); // рейтинг, со значением от 1 до 5
    });

现在我正在做一个简单的计算并使用这样的查询输出平均值:

select
  AVG(rating) as avg,
  COUNT(*) as amount
from
  `ratings`
where
  `id_post` = '1'

结果我得到:

$rating = [
    'avg' => '3.400',
    'amount' => 10
];

问题:如何构建一个额外计算的查询以及每颗星的数量?也就是有多少人打1星,多少人打2星等。所以结果会是这样的:

$rating = [
        'avg' => '3.400',
        'amount' => 10,
        'star_count1' => 2,
        'star_count2' => 1,
        'star_count3' => 1,
        'star_count4' => 3,
        'star_count5' => 3
    ];
mysql
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5