错误代码1064:SQL查询中的语法错误

时间:2014-10-23 00:55:29

标签: mysql

有人能告诉我下面的python查询有什么问题吗?SU_version是数据类型varchar(45),如果需要任何细节,请告诉我。

SELECT gerrit_id
FROM gerrit_table
where (SU_version>=00.00.0086
       and SUversion<=00.00.0085
       and PL=LA.BF64.1.1 
       and component=SU_CNSS_BT_FM_Redfox64);

2 个答案:

答案 0 :(得分:1)

据推测,问题是常数。它们看起来像字符串,所以它们应该用单引号括起来:

SELECT gerrit_id
FROM gerrit_table
WHERE SU_version >= '00.00.0086' and SUversion <= '00.00.0085' and
      PL = 'LA.BF64.1.1' and component = 'SU_CNSS_BT_FM_Redfox64';

答案 1 :(得分:0)

你说SU_version是varchar,所以为什么你在where子句中使用&gt; =,也许在使用&gt; =之前尝试将它强制转换,并且在你的pl中,你应该用引号括起来试试这段代码

SELECT gerrit_id
FROM gerrit_table
where (cast(SU_version as double)>=00.0086
   and SUversion<=00.00.0085
   and PL='LA.BF64.1.1' 
   and component='SU_CNSS_BT_FM_Redfox64');

我不知道LA.BF64.1.1SU_CNSS_BT_FM_Redfox64是什么,所以我认为他们只是用户输入,希望这会有所帮助