1

我有一个像这样的查询

SELECT name, town FROM clients WHERE course = 1;

它给了我一些结果。

但我注意到查询没有输出最新的条目。我用 phpmyadmin 查看了表客户端,我看到了更多值为 1 的课程字段。在我将查询更改为

SELECT name, town FROM clients WHERE course = '1';

我得到了正确的输出。

我的问题:为什么会这样?为什么我在第一个查询中得到了一些结果?

ps:当然是一个枚举字段('0','1')。

4

1 回答 1

3

1是整数值,或“TRUE”,或 ...(不明确),'1'而是字符串值。

如ENUM 类型的MySQL 文档中所述:

ENUM 是一个字符串对象,其值选自创建表时列规范中明确枚举的允许值列表。

[...]

如果您希望将数字用作枚举值,则必须将其括在引号中。如果省略引号,则将数字视为索引。由于这个和其他原因(如本节后面所述),我们强烈建议您不要使用数字作为枚举值。

因此,ENUM 是一个字符串对象,因此您需要将其作为字符串引用。

于 2013-04-10T08:29:14.210 回答