Mysql 错误代码:1054。“where子句”中的未知列
我不知道下面的存储过程中出现了什么问题:Mysql 错误代码:1054。“where子句”中的未知列,mysql,stored-procedures,Mysql,Stored Procedures,我不知道下面的存储过程中出现了什么问题: CREATE PROCEDURE `GetDataByColNameByTime `( IN Col_Name VARCHAR(50), IN DateStart VARCHAR(50), IN DateEnd VARCHAR(50) ) BEGIN SET @sqlx = CONCAT ('SELECT ', Col_Name , ' , SAMPLE_TIME FROM indicator_data_history I
CREATE PROCEDURE `GetDataByColNameByTime
`(
IN Col_Name VARCHAR(50),
IN DateStart VARCHAR(50), IN DateEnd VARCHAR(50) )
BEGIN
SET @sqlx =
CONCAT
('SELECT ', Col_Name , ' , SAMPLE_TIME FROM indicator_data_history I
WHERE ( I.SAMPLE_TIME >= `2014-04-04 11:47:57` )
AND ( I.SAMPLE_TIME <= `2014-04-04 11:33:57` )
order by SAMPLE_TIME');
PREPARE stmtx FROM @sqlx;
EXECUTE stmtx;
如果用一个简单的语句编写,我可以进行类似的查询:
SELECT RT , SAMPLE_TIME FROM indicator_data_history I WHERE ( I.SAMPLE_TIME >= '2014-04-04 11:47:57' ) AND ( I.SAMPLE_TIME <= '2014-04-04 11:33:57' ) ;
经过分析,引号似乎是问题所在2014-04-04 11:33:57-知道如何解决这个问题吗?反勾号用于列和表名。“单引号”用于字符串。例如,这是无效的:
I.SAMPLE_TIME >= `2014-04-04 11:47:57`
这是有效的:
I.SAMPLE_TIME >= '2014-04-04 11:47:57'
@D.Kasipovic,问题是你如何在字符串中添加引号,因为我做了你建议的事情,出现了语法错误Hanks D.Kasipovic感谢你的及时回复你确实让我无法找到解决方案。@user3506769你能把上面的答案标记为最佳答案吗?