我有一个像
这样的查询SELECT name, town FROM clients WHERE course = 1;
它给了我一些结果。
但我注意到查询没有输出最新的条目。我用phpmyadmin查看表客户端,我看到更多的课程字段值为1。 我将查询更改为
后SELECT name, town FROM clients WHERE course = '1';
我得到了正确的输出。
我的问题:这是为什么?为什么我在第一个查询中得到了一些结果?
ps:当然是一个枚举字段(' 0',' 1')。
答案 0 :(得分:3)
1
是一个整数值,或者是“TRUE”,或者是......(不明确的),而'1'
是一个字符串值。
如MySQL-documentation中针对ENUM类型所述:
ENUM是一个字符串对象,其值从列表中选择 在列中显式枚举的允许值 表创建时的规范。
[...]
如果您希望使用数字作为枚举值,则必须将其括起来 它用引号。如果省略引号,则为数字 被视为指数。出于这个原因和其他原因 - 如后面所述 在本节中 - 我们强烈建议您不要使用数字 枚举值。
因此,ENUM是一个字符串对象,因此您需要将其作为字符串引用。