记录一些奇奇怪怪的sql

-- 批量更新
-- 更新表prod_func_map的func_id为(2,4)的两条数据的字段func_name、func_name_en,且不同的func_id,这两个字段的值也不同
UPDATE prod_func_map SET func_name = CASE func_id  WHEN 2 THEN ? WHEN 4 THEN ? END,func_name_en = CASE func_id  WHEN 2 THEN ? WHEN 4 THEN ? END where func_id in(2,4);

或者直接构造多条update语句,一把梭丢给MySQL服务器,这做法有个缺点,会导致sql注入,所以一定要注意参数的来源是安全的。
$sql = "UPDATE user_position_survey SET product_name='aaa' WHERE id=1;";
$sql .= "UPDATE user_position_survey SET product_name='bbb' WHERE id=2;";
UserPositionSurvey::query()->getConnection()->getPdo()->exec($sql);
-- 冗余表字段
-- 更新表total_product_user的group_name、group_name_en字段,并且这些字段的值来自于另外的表product_group
UPDATE
    total_product_user as a,
    product_group as b set
    a.group_name = b.group_name,a.group_name_en = b.group_name_en
where
    a.group_id = b.group_id and a.`day` =20220704
sql
本作品采用《CC 协议》,转载必须注明作者和本文链接
梦想星辰大海
讨论数量: 1
Squ1rrel

不愧是可读性倒数的语言 :see_no_evil:

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!