相关疑难解决方法(0)

MySQL - 在一个查询中更新具有不同值的多个行

我试图了解如何使用不同的值更新多行,我只是不明白.解决方案无处不在,但对我来说,它看起来很难理解.

例如,三个更新为1个查询:

UPDATE table_users
SET cod_user = '622057'
    , date = '12082014'
WHERE user_rol = 'student'
    AND cod_office = '17389551'; 

UPDATE table_users
SET cod_user = '2913659'
    , date = '12082014'
WHERE user_rol = 'assistant'
    AND cod_office = '17389551'; 

UPDATE table_users
SET cod_user = '6160230'
    , date = '12082014'
WHERE user_rol = 'admin'
    AND cod_office = '17389551'; 
Run Code Online (Sandbox Code Playgroud)

了一个例子,但我真的不明白如何进行查询.即:

UPDATE table_to_update
SET cod_user= IF(cod_office = '17389551','622057','2913659','6160230')
    ,date = IF(cod_office = '17389551','12082014')
WHERE ?? IN (??) ;
Run Code Online (Sandbox Code Playgroud)

如果在WHERE和IF条件中存在多个条件,我不完全清楚如何进行查询.任何想法?

mysql sql sql-update

118
推荐指数
5
解决办法
23万
查看次数

如何使用eloquent/fluent从单个查询中插入多行

我有以下查询:

  $query = UserSubject::where('user_id', Auth::id())->select('subject_id')->get();
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,我得到以下结果:

[{"user_id":8,"subject_id":9},{"user_id":8,"subject_id":2}]
Run Code Online (Sandbox Code Playgroud)

有没有办法将上面的结果复制到另一个表中,以便我的表看起来像这样?

ID|user_id|subject_id
1 |8      |9
2 |8      |2
Run Code Online (Sandbox Code Playgroud)

$query遇到的问题是可以预期任意数量的行,因此我不确定如何遍历未知数量的行.

php sql laravel eloquent

109
推荐指数
3
解决办法
14万
查看次数

标签 统计

sql ×2

eloquent ×1

laravel ×1

mysql ×1

php ×1

sql-update ×1