当找不到记录时出错#2014-命令不同步;现在不能运行此命令

nfs0ujit  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(336)

当我执行这个存储过程时,如果找到的记录没有错误并且返回行,但是如果没有找到的记录就有这个错误,并且表中没有外键,我仍然通过添加
设置外键检查=0;
sp开始和结束时
设置外键检查=1;
但没用
存储过程:

CREATE DEFINER=`root`@`localhost` PROCEDURE `find_location`
(IN `location` VARCHAR(50)) 
NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER 
BEGIN
   SELECT * FROM properties
   WHERE properties_location LIKE concat('%',location,'%');
END

错误
静态分析:
分析中发现1处错误。
1.表达缺失(位置25处“开”附近)sql查询:编辑
设置外键\u checks=on;
mysql说:文档

2014-命令不同步;现在不能运行此命令

表结构

CREATE TABLE `properties` (
  `properties_id` bigint(20) NOT NULL,
  `properties_title` varchar(500) NOT NULL,
  `properties_country` varchar(200) NOT NULL,
  `properties_state` varchar(200) NOT NULL,
  `properties_city` varchar(200) NOT NULL,
  `properties_location` varchar(200) DEFAULT NULL,
  `properties_contact` bigint(20) DEFAULT NULL,
  `properties_agent` bigint(20) DEFAULT NULL,
  `properties_floorarea` decimal(15,3) DEFAULT NULL,
  `properties_bedrooms` int(5) DEFAULT NULL,
  `properties_bathrooms` int(5) DEFAULT NULL,
  `properties_type` varchar(100) DEFAULT NULL,
  `properties_furnishing` varchar(100) DEFAULT NULL,
  `properties_userid` bigint(20) NOT NULL,
  `properties_usertype` varchar(50) NOT NULL,
  `properties_isapproved` int(1) NOT NULL DEFAULT '1',
  `properties_isactive` int(1) NOT NULL DEFAULT '1',
  `properties_cr_dt` datetime NOT NULL DEFAULT NOW(),
  `properties_md_dt` datetime DEFAULT NULL,
  `properties_description` varchar(19000) DEFAULT NULL,
  `properties_img` varchar(600) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
uoifb46i

uoifb46i1#

请重新创建过程,如下所示:

DELIMITER $$

CREATE PROCEDURE `find_location`(IN `location` VARCHAR(50))
NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER 
BEGIN
    SELECT * FROM properties WHERE properties_location LIKE CONCAT('%',location,'%');
END$$
DELIMITER ;

我按照下面的命令测试了调用过程,并没有发现任何错误,以防在表中找不到记录。

CALL find_location('India');

请检查确认。希望有用!

相关问题