如何获取枚举查询
How to get query for enum
所以我这里有一个 table 和 isAdmin 和 isTeacher 的列
isAdmin 和 isTeacher 的数据类型是 enum(0,1)。
id Name isAdmin isTeacher
1 Admin 1 0
2 Teacher 0 1
3 Student 0 0
当我执行这个查询时:
SELECT * FROM users where isAdmin = 1 and isTeacher = 1
它让我
Student **(assuming isAdmin = 0 and isTeacher =0)**
(不知道为什么显示那个记录o__o)
现在,我想找到 isTeacher,
我尝试了这些查询...
SELECT * FROM users where isAdmin = 1 and isTeacher = 1 and isAdmin = 0
(无结果)
SELECT * FROM users where isAdmin = 1 and isTeacher = 1 and isTeacher = 0
(无结果)
SELECT * FROM users where isTeacher = 0 (it gets me the Admin and Student)
请帮忙? @_@
使用枚举类型时,您应该使用字符串值或整数索引.
假设您的(实际)字段声明是
...
isAdmin enum ('0','1'),
isTeacher enum ('0','1')
...
您的查询
SELECT * FROM users where isAdmin = 1 and isTeacher = 1
将 return 记录 isAdmin
字段值等于“0”(索引为 1 的值),与 isTeacher
.
相同
如果您需要按值而不是索引进行过滤,您应该使用字符串值:
SELECT * FROM users where isAdmin = '1' and isTeacher = '1'
此查询将 return 也是教师的管理员(您的示例数据不包含这些)。
N.B。第 0 个索引标识 NULL 值。
有关完整参考,请参阅 docs。
这三个类别是否相互排斥?如果是这样,请使用
category ENUM('admin', 'teacher', 'student') NOT NULL
并使用
进行测试
WHERE category = 'student'
(等)。更简单。更清晰。
所以我这里有一个 table 和 isAdmin 和 isTeacher 的列
isAdmin 和 isTeacher 的数据类型是 enum(0,1)。
id Name isAdmin isTeacher
1 Admin 1 0
2 Teacher 0 1
3 Student 0 0
当我执行这个查询时:
SELECT * FROM users where isAdmin = 1 and isTeacher = 1
它让我
Student **(assuming isAdmin = 0 and isTeacher =0)**
(不知道为什么显示那个记录o__o)
现在,我想找到 isTeacher,
我尝试了这些查询...
SELECT * FROM users where isAdmin = 1 and isTeacher = 1 and isAdmin = 0
(无结果)
SELECT * FROM users where isAdmin = 1 and isTeacher = 1 and isTeacher = 0
(无结果)
SELECT * FROM users where isTeacher = 0 (it gets me the Admin and Student)
请帮忙? @_@
使用枚举类型时,您应该使用字符串值或整数索引.
假设您的(实际)字段声明是
...
isAdmin enum ('0','1'),
isTeacher enum ('0','1')
...
您的查询
SELECT * FROM users where isAdmin = 1 and isTeacher = 1
将 return 记录 isAdmin
字段值等于“0”(索引为 1 的值),与 isTeacher
.
如果您需要按值而不是索引进行过滤,您应该使用字符串值:
SELECT * FROM users where isAdmin = '1' and isTeacher = '1'
此查询将 return 也是教师的管理员(您的示例数据不包含这些)。
N.B。第 0 个索引标识 NULL 值。
有关完整参考,请参阅 docs。
这三个类别是否相互排斥?如果是这样,请使用
category ENUM('admin', 'teacher', 'student') NOT NULL
并使用
进行测试WHERE category = 'student'
(等)。更简单。更清晰。