sprintf_s(sql, sizeof(sql), "select scene_name from template_lamp_control.road_scene where scene_id=%d;",  SceneID);我指天发誓'scene_id' 绝对存在。而且我这个sql语句很简单。为什么就报了这个错呢?
Unknown column 'scene_id' in 'where clause'。 这个scene_id是表里的自增主键,是不是自增主键不能做where啊?我试其他的字段都可以where,就这个主键说找不到。  初学mysql请教诸位。

解决方案 »

  1.   

    sprintf_s(sql, sizeof(sql), "select scene_name from template_lamp_control.road_scene where scene_id=%d;",  SceneID);
    printf("%s",sql);打出你的sql的实际内容是什么。
    然后在MYSQL中执行并贴出你的 desc template_lamp_control.road_scene 结果
      

  2.   

    自增字段可以在WHERE中,直接在MYSQL中运行
    此SQL语句,结果如何
    显示SQL语句,看看内容是什么 
      

  3.   

    显示的sql语句如下
    select scene_name from template_lamp_control.road_scene where  scene_id=20;在Navicat中运行报的错就是 1054-Unknown column 'scene_id' in 'where clause'
    我从表中复制scene_id到语句中也是报这个错,这让我情何以堪。。
      

  4.   

    show create table road_scene
    是template_lamp_control中的表?
      

  5.   

    select scene_name from template_lamp_control.road_scene where of_road_id=20;用另外一个字段,完全没有问题。 是不是scene_id是主键的原因?
      

  6.   

    在Navicat中 运行 desc  template_lamp_control.road_scene然后贴出结果我坚信,你的这个字段scene_id根本在这个表中不存在!
      

  7.   

    show create table template_lamp_control.road_scene
    贴结果
      

  8.   

    直接在MYSQL中运行
    此SQL语句,结果如何
    什么 引擎
      

  9.   

    用文本的方式贴出 不要贴图。show create table template_lamp_control.road_scene;的结果。
      

  10.   

    问题已经解决了 在Navicat中 表里scene_id前面多了一个小的可以忽略的空格,导致它找不到了。我表是很淡定,您二位也别说什么了,结贴。
      

  11.   

    注意  mysql的编码与网页的编码是否一致。