gpt4 book ai didi

mysql - 如何在联合选择中的mysql中选择字段中使用表名

转载 作者:行者123 更新时间:2023-11-29 00:44:37 26 4
gpt4 key购买 nike

我有一个多语言 cms 表,我需要一个 UNION SELECT 来从所有语言中选择表,无论如何我定义当前行是来自女巫表吗?像这样:

SELECT *,lan=en FROM en_table UNION SELECT *,lan=fa FROM fa_table ...

我知道我可以使用这个:

SELECT *,(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA = 'db' AND TABLE_NAME = 'en_table' LIMIT 1) As lan FROM en_table UNION ...

但这是个愚蠢的想法,有更好的方法吗?

最佳答案

使用单引号括起来的字符串文字,别名如下:

SELECT
*,
/* string literal 'en' */
'en' AS lang
FROM en_table
UNOIN ALL
*,
/* string literal 'fa' */
'fa' AS lang
FROM fa_table

需要注意两点:在UNION 查询中使用SELECT * 是不明智的。而是明确列,以便它们的顺序是确定的。

SELECT
col1,
col2,
'en' AS lang
FROM en_table
UNOIN ALL
col1,
col2,
'fa' AS lang
FROM fa_table

然后,如果可能的话,从长远来看,您应该将所有这些表合并为一个表,其中包括一个标识语言的列。这将使您不必在以后使用 UNION 使事情复杂化。

关于mysql - 如何在联合选择中的mysql中选择字段中使用表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10969201/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com