SELECT * FROM users WHERE userid=1
这条查询语句中字段id能不能用查询结果代替?like this
SELECT * FROM users WHERE (SELECT fieldname FROM fields WHERE fldid=71)=1我这样写查询不出数据,另外可以肯定SELECT fieldname FROM fields WHERE fldid=71结果是userid,请问应该怎么写?

解决方案 »

  1.   

    不知你这SQL语句是不是要嵌入到那门程序语言中的哦,
    如果是要放在程序中执行,你可以先把“SELECT   fieldname   FROM   fields   WHERE   fldid=71”的结果先放一个变量中,然后再
    “SELECT   *   FROM   users   WHERE "+变量+"=1"得到新的SQL语句
      

  2.   

    我是在数据库端编程,必须用sql语句解决,改程序不太现实
      

  3.   


    这个得用到与处理语句。select fieldname from fields where fldid = 71 into @f_id;
    set @stmt = concat('SELECT   *   FROM   users   WHERE ',@f_id,' = 1');
    prepare s1 from @stmt;
    execute s1;
    deallocate prepare s1;