【问题标题】:Select statement with Binary field选择带有二进制字段的语句
【发布时间】:2018-03-17 19:21:34
【问题描述】:

我试图通过识别存储为 SMALLINT 的 userID 和存储为 BINARY(32) 的 passwordTest 从表中选择所有数据。这是我用来制作表格的查询:

{   {CREATE TABLE IF NOT EXISTS `test`.`User` 
(`UserID` SMALLINT UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT,
`firstname` VARCHAR(35) NOT NULL,
`lastname` VARCHAR(35) NOT NULL,
`passwordTest` BINARY(32) NOT NULL,
`registration_date` DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`UserID`),
UNIQUE INDEX `password_UNIQUE` (`passwordTest` ASC));}

这是我用来向表中插入测试值的查询:

{INSERT INTO USER (firstname, lastname, passwordTest)
VALUES('Test','1','password');}

这是我的 SQL 查询不起作用:

{USE test;
SELECT * FROM USER WHERE userID = '00001' AND passwordTest = 'password';}

任何帮助将不胜感激

【问题讨论】:

    标签: mysql binary binary-data


    【解决方案1】:

    由于您将密码列定义为二进制,因此您必须在 where 子句中将密码转换为二进制。这适用于mysql5.6

    Select * From User Where UserID = '00001' and passwordTest = cast('password' as BINARY(32))

    【讨论】:

      猜你喜欢
      • 2016-06-17
      • 1970-01-01
      • 2021-03-26
      • 1970-01-01
      • 1970-01-01
      • 2017-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多