为什么 MySQL 查询(/存储过程)中的 WHERE 子句返回不需要的数据?

凡妮莎赞布拉诺

我有一个表,引号,以 UserID 作为主键。我想通过基于 UserID 的查询来隔离用户特定的数据。但是,当我在表中查询与特定 UserID 匹配的行时,会返回与给定 ID 不匹配的行。这里有人知道为什么吗?

我尝试使用 MATCH(UserID) AGAINST(USERID) 重写查询,但返回错误 1210:MATCH 的参数不正确,我觉得我可能会朝着错误的方向前进。

这是我的报价表脚本:

DROP TABLE IF EXISTS quotes;

CREATE TABLE quotes (
UserID varchar(255) NOT NULL,
Gallons decimal(10,0) NOT NULL,
Date varchar(50) NOT NULL,
Address varchar(255) NOT NULL,
InState tinyint DEFAULT NULL,
ppg decimal(10,0) GENERATED ALWAYS AS (if(InState,3,5)) STORED,
Total decimal(10,0) GENERATED ALWAYS AS ((Gallons * ppg)) STORED,
FullName varchar(101) NOT NULL,
KEY UserID (UserID),
CONSTRAINT quotes_ibfk_1 FOREIGN KEY (UserID) REFERENCES users (UserID)
) 

这是我查询 Quote 表的存储过程:

CREATE DEFINER=`root`@`localhost` PROCEDURE `quoteGet`
(       
    IN USERID varchar(255)  
) 
BEGIN       
    SELECT * FROM QUOTES WHERE UserID = USERID;  
END 

mySQL 发现足以返回的两个 UserID 是'ddb22baa90894e24e1d53c186e203eba''cde6a2f820a251817cd62c5ca3f322ae'我用后者调用了存储过程,它返回了前者的条目以及后者的条目。

卢卡斯·索兹达

该参数应重命名:

CREATE DEFINER=`root`@`localhost` PROCEDURE `quoteGet`
(       
    IN P_USERID varchar(255)  
) 
BEGIN       
    SELECT * FROM QUOTES WHERE UserID = P_USERID;  
END 

在当前设置UserId = USERID中被视为1=1.

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我的存储过程在以下查询中返回 NULL?

'where 子句'中的未知列,通过 mysql 存储过程

为什么在MySQL中使用子查询别名在“ where子句”中获取“未知”列?

在 PowerShell 中,为什么 WMI 查询返回不需要的字段?

mysql存储过程动态where子句

为什么在MySQL中使用数据库语句后不需要分号?

MySQL存储过程返回所有行,而忽略WHERE子句

MYSQL存储过程不检查where子句并返回整个表

MySQL存储过程返回所有结果忽略WHERE子句

与PostgreSQL相比,为什么Mysql不需要真空?

为什么存储过程的LIKE子句返回的数据不同于常规查询的数据?

为什么Mysql总是使用存储过程返回零值?

mysql-为什么在WHERE子句上使用此子查询?

为什么此查询忽略WHERE子句?

MySQL存储过程从秒查询中返回变量值?

将子查询移动到where或from子句,因为我不需要它的值

为什么我们不需要对象来存储字符串数据?

为什么不需要`call`从管道中涉及的被调用批处理脚本返回?

什么是 For 循环?为什么在 R 中不需要它?

为什么SELECT COUNT(*)比MySQL中带有WHERE子句的SELECT慢得多?

回答了,为什么呢?mysql第一个查询运行第二个不需要理解为什么?

为什么MySql更新会忽略where子句?

为什么我的存储过程查询返回额外的结果?

为什么不能在PHP中创建MySQL存储过程?

为什么不等于where子句查询在firestore中需要排序?

为什么我的Keras LSTM中不需要TimeDistributed?

为什么在此示例代码中不需要 readSync?

为什么AWS中的NLB不需要安全组?

为什么在C#中不需要#include指令?