【发布时间】:2026-01-29 13:20:04
【问题描述】:
尝试创建一个存储过程,该过程采用几个在 select 语句中使用的 IN 变量:
CREATE PROCEDURE getevents
( mytoday varchar(64),nextWeek varchar(64),lon varchar(64),lat varchar(64),mylimit INT ) 开始 选择 events.Open_All_Year,events.Category as PictureName,events.EventID,events.Title,events.Long_Description,events.Times_Fees,events.Event_Attraction,events.Event_Street1,events.Event_Street2,events.Event_Postcode,events.Event_Town,events.Event_County ,events.Latitude_degs, events.Longitude_degs,events.Short_Description, CASE WHEN (opening_dates.Start_Date = mytoday) THEN mytoday ELSE opening_dates.Start_Date END as Start_Date, opening_dates.Stop_Date, ((ACOS(SIN( lat * PI()/180) * SIN(Latitude_degs * PI()/180) + COS(lat * PI() / 180) * COS(Latitude_degs * PI() / 180) * COS((lon)*PI( )/180))*180/PI())*60*1.1515 ) 作为距离, webID, events.Wifi, events.Dogs, events.Disabled, events.Fee, events.Telephone, events.Email, events.Inactive FROM events,opening_dates where(events.EventID = opening_dates.FKEvent) AND (Review = false) AND (Inactive = 0) AND (((Start_Date = mytoday)) OR (Start_Date between mytoday and nextWeek) ) ORDER BY 距离,Start_Date ASC 限制 mylimit; 结尾;
给出一个无用的 #1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 6 行的 '' 附近使用正确的语法
【问题讨论】:
-
去掉$-limit mylimit
-
试过了,出现 SQL 语法错误:#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 7 行的 '' 附近使用正确的语法