解决方案 »

  1.   

    列出所有可能的查询语句,然后看explain select 具体分析。
      

  2.   

    1  load data local infile 是支持中文路径的  
    2  如果有多个查询条件,是应该在应用程序中组装查询语句的,所以是没办法避免的
      

  3.   

    能具体点么?这个真的愁蒙了。还有LOAD DATA LOCAL INFILE不支持中文路径吗?
      

  4.   

    我不是写C的,只说下逻辑,就看你能不能领悟了。
    mysqlstr="select * from person where 1=1";
    if (name!=null) mysqlstr+=" and name='+name+'";
    if (xingbie!=null) mysqlstr+=" and xingbie='+xingbie+'";
    if (xueyuan!=null) mysqlstr+=" and xueyuan='+xueyuan+'";
      

  5.   


    where 1=1相当于没限定条件,但固定加入where了,是吗,这样就不用考虑什么时候用where什么时候用and了
    口胡口胡,已经相当简单了,还有更好的办法没?
      

  6.   

    建议先排开C,直接用MYSQL的命令行工具测试。中文路径是支持的。
    explain 是在mysql行命令工具中看执行计划。
      

  7.   


    where 1=1相当于没限定条件,但固定加入where了,是吗,这样就不用考虑什么时候用where什么时候用and了
    口胡口胡,已经相当简单了,还有更好的办法没?
    固定加入where就是为了避免and出现的问题和当一个查询都没有的时候的问题,这是合理的解决办法如果有N个条件,是需要这么写的,或者可以利用for循环组装,在循环中处理好列名
      

  8.   


    SQLyog - 32 bit中执行 load data local infile 支持中文路径
    但程序里mysql_query(&mysql,"LOAD DATA LOCAL INFILE 'E:/Visual Studio 2008 Projects/示例/1.txt' REPLACE INTO TABLE z1  IGNORE 1 LINES()");就不能成功。
    这样mysql_query(&mysql,"LOAD DATA LOCAL INFILE 'E:/Visual Studio 2008 Projects/1.txt' REPLACE INTO TABLE z1  IGNORE 1 LINES()");数据就能导入
    无解啊!!!各位帮帮忙
      

  9.   

    你的应用程序的编码方式是什么? 改成uff8试试看
      

  10.   


    utf8支持中文路径了,但是导入的汉字数据全变成问号了
    用gbk就是汉字,可又不支持中文路径
      

  11.   

    哈哈,可以结贴了,谢谢大家。关于load data local infile 是支持中文路径的,放在程序里需要加mysql_query(&mysql,"set names utf8");这条语句。数据库设置是gbk。这样既支持中文路径,汉字数据也不会变成问号(?)了。
    最后再次谢谢大家