【发布时间】:2026-02-12 07:45:01
【问题描述】:
有人知道如何在 mysql 中执行以下语法吗?
没有存储过程,仅在单个查询中
SELECT CASE
WHEN COUNT(v.value) = 0 THEN (
INSERT INTO tbl_v (fid, uid, VALUE)
SELECT fid, 1 AS uid, 'xxxxxx' AS VALUE FROM tbl_f
WHERE category = 'categoryname' AND NAME = 'somevalue'
)WHEN v.value <> 'test' THEN (
'update syntax here' /* will be similar like insert statement above */
)ELSE (
v.value
)END
FROM shared_tbl_f f
INNER JOIN tbl_v v ON f.fid = v.fid
WHERE v.uid = 1 AND f.category = 'categoryname' AND f.name = 'somevalue'
注意:
tbl_v 上没有主键
tbl_v 的唯一引用只是列 fid 和列 uid 的组合。
因为tbl_v 是一个映射表(那里没有主键) - fid 和 uid 是另一个表的外键。
【问题讨论】: