有人知道如何在 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 是另一个表的外键。