MySQL存储过程响应错误

标签 mysql

我创建了一个测试表。它有三个字段 id、名称和城市。

create table testtable
(
id int,
name varchar(100),
city varchar(100)
)

表记录为

insert into testtable values(1,'Sanjay','Rajkot');
insert into testtable values(2,'Ravi','Ahmedabad');

我还创建了一个名为 sp_testtable 的过程。

DELIMITER //
create procedure sp_testtable
(
    in city varchar(100)
)
BEGIN
    select * from testtable where city = city;
END //
DELIMITER ;

当我调用存储过程时

CALL sp_testtable('Rajkot');

结果是..

enter image description here

但是我需要这样......

enter image description here

我不知道出了什么问题......请告诉我......

最佳答案

尝试将变量名称更改为另一个变量名称。 例如:

DELIMITER //
create procedure sp_testtable
(
    in city_name varchar(100)
)
BEGIN
    select * from testtable where city = city_name;
END //
DELIMITER ;

Sql 期望您比较同一列,结果始终为 true。

关于MySQL存储过程响应错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30148350/

相关文章:

php - 在带有复选框的下拉列表中选择多个项目

mysql - 在将其分解为多个表之前,MySQL 表应该有多大?

mysql - 在更新时使用 UNIX_TIMESTAMP 而不是时间戳

mySQL:用 <p> 替换/n 的所有实例

php - 返回 PHP 数组中每个日期的报告

mysql - 如何将多值属性放在查询的一列中?

mysql - 如何查找按日期时间排序的 mySQL 表中的最后一个值?

mysql - 使用 MySQL 移动传递闭包子树

php - 如何在MYSQL中获取不带小数的列值

mysql - 聊天室的数据库设计。需要保存每次聊天