次のクエリを使用して、mysql のユーザー テーブルを更新しました。
update users set user_likes =
(CASE WHEN like_by_users NOT LIKE '%user_name%'
AND dislikes_by_users NOT LIKE '%user_name%'
THEN (user_likes +1) ELSE user_likes END)
WHERE post_id = '2221'
これは私にとってはうまくいきますが、likes_by_users もこのように更新したいと思います
likes_by_users = CONCAT(likes_by_users,' ','user_name')
私はこのようにそれをやろうとしました
update users set user_likes =
(CASE WHEN like_by_users NOT LIKE '%user_name%'
AND dislikes_by_users NOT LIKE '%user_name%'
THEN (user_likes +1), likes_by_users = CONCAT(likes_by_users,' ','user_name')
ELSE user_likes END)
WHERE post_id = '2221'
しかし、それはまったく機能しません。条件を再度確認したくはありませんが、上記の条件が真の場合、(user_likes) だけでなく (user_likes) と (likes_by_users) の 2 つの列を更新する必要があり、条件が偽の場合は列を更新しないでください。