mysql - MySQL - 将值评估为字段名称
问题描述
嗨 stackoverflow 社区,
我想知道是否可以将值评估为 MySQL 请求中的字段。
这是我的问题:
我有一个post
表(id,lg,text)和一个lang
表(id,lg1,lg2,lg3)。我在 lg1/lg2/lg3 中的帖子翻译链接如下表lang
。
示例:
in lang
:
id: 1 - lg1: 1 - lg2: 2 - lg3: 7
in post
:
id: 1 - lg: lg1 - text: my text in lg1 language
id: 2 - lg: lg2 - text: my text in lg2 language
id: 7 - lg: lg3 - text: my text in lg3 language
现在我想从帖子 ID(例如:2)和语言(例如:lg2)中获取所有翻译,这是我的请求:
select p.* from `post` p left join `lang` l on
(
(l.lg1 = p.id) or
(l.lg2 = p.id) or
(l.lg3 = p.id)
) where l.lg2 = 2;
但如果我想添加一种语言,我将不得不改变我所有的要求......如果我能做这样的事情:
select p.* from `post` p left join `lang` l on
(l.eval(p.lg) = p.id)
where l.lg2 = 2;
那会很好。
任何想法?
解决方案
推荐阅读
- elasticsearch - ElasticSearch 多个 AND/OR 查询
- javascript - 不工作的 javascript 代码 - 某种缓存问题?
- javascript - 当它们位于不同的组件中时,如何堆叠两个容器?
- node.js - 模拟 Intl.NumberFormat 使 Jest Test 独立于当前文化
- python - 回文与对称以及如何处理 2 个单词字符
- sockets - 用于在以太网帧上添加自定义协议的以太网类型
- json - Jq 处理空字符串并用默认值替换它们
- python - mysql插入了第一个值,但它不想插入下一个值 - python
- python - Python从秒和纳秒生成时间戳
- clickhouse - Clickhouse:删除重复数据