0
我做了很多形式MySQL的选择和表达与枚举
SELECT `u` AS `A`, `v` as B, TRUE AS `IsFirst`, FALSE AS `IsSecond` from `first`
UNION
SELECT `x` AS `A`, `y` AS B, FALSE AS `IsFirst`, TRUE as `IsSecond` from `second`
和这样的查询,通常使它们成为意见,当然。
而不是有一堆与他们的布尔列我宁愿使用ENUM,我想过使用整数值而不是单独的列,但这可能会导致错误(行名称是自我解释,一个名为Source
的列值为2
不是),我不想使用字符串的原因很明显。
我想使用ENUM
,但我不知道(如果可以的话,我也不会发现)用enum表达式编写SELECT
。我已经尝试了很明显的:
SELECT CAST("A", ENUM("A","B"));
SELECT CAST(1, ENUM("A","B"));
和一些其他人也是语法错误,但他们从绝望,我真的不抱任何希望。 MySQL文档列出了支持的类型,而ENUM不是其中之一,以上是我在尝试知道之前所尝试的内容。
我可以继续使用列,它只是一个ENUM会更好。
这是否有语法? (也许从视角?)
这不回答这个问题是因为它创建了一个表格,请尝试“选择5;”作为一个查询,我想要做这样的事情,而不是一个整数,一个枚举成员。 –
该表仅作为示例出现,并且在该上下文中是必需的,因为ENUM仅在DDL语句(即CREATE TABLE,ALTER TABLE和friends)中有意义。 SELECT中的ENUM没有意义,这就是为什么它是一个语法错误;一旦你定义了一个ENUM列,你从它那里得到的东西总是一个字符串(或者如果你定义列允许的话,它是NULL),你可以从那里投射。 (您的问题并不十分清楚,但如果您想要紧密处理许多布尔值,请尝试[BIT(bitfield)列](https://dev.mysql.com/doc/refman/5.0/en/位type.html)。) –