如何在不使用双引号(“1”)的情况下选择行。
我在枚举类型中设计了status
列。
status
enum('0', '1')
我的查询:
SELECT * FROM `user` WHERE activation_key='123456' AND status="1";
结果:
Display 1 row
我正在尝试:
SELECT * FROM `user` WHERE activation_key='123456' AND status=1;
结果:
Display 0 row
是否可以在status
列中获取没有双引号或单引号的数据?
我是MYSQL的初学者,对不起我的问题抱歉!
答案 0 :(得分:1)
枚举值必须是带引号的字符串文字。要查询字符串,您必须将其括在引号中。
如果您使枚举值看起来像数字,则很容易将文字值与其内部索引号混淆。
numbers ENUM('0','1','2')
如果存储2,则将其解释为索引值,并变为' 1' (索引为2的值)。如果您存储' 2',则它与枚举匹配 值,因此它存储为' 2'。如果您存储' 3',则它与任何内容都不匹配 枚举值,因此它被视为一个索引并成为' 2' (该 索引值为3)。
mysql> INSERT INTO t (numbers) VALUES(2),('2'),('3');
mysql> SELECT * FROM t;
+---------+
| numbers |
+---------+
| 1 |
| 2 |
| 2 |
+---------+
更多详情ENUM in MySQL