select 是最简单的方法了。我想不到还有比这个更简单的方法了。

解决方案 »

  1.   

    为数据库字段设置unique,保证无重复即可
      

  2.   

    select Distinct(城市)
    或是输入后在数据库中查询看存在不
      

  3.   

    同意把数据库字段设置成UNIQUE
      

  4.   

    如果数据量很大,可以考虑把那个字段也变成主键,这样SELECT 的时候会快一点.
      

  5.   

    1、select 
    2、表字段设置为唯一索引unique
      

  6.   

    1、入库前先检查是最通用,也是用的最多的
    2、指定字段唯一,需插入后检查是否插入成功。
    3、若始终以最后插入的为准,可使用replace指令
      

  7.   

    如果我将字段设置为unique,那么在提交一个重复数据时,系统会显示自动提示错误吗?
      

  8.   

    如果我将字段设置为unique,那么在提交一个重复数据时,会告诉有错误发生。
    一般把这个给屏蔽不给最终用户,提示重复信息就是。
    先select检查是方便又麻烦啊。
      

  9.   

    6.4.3.1 INSERT ... SELECT 句法
    INSERT [LOW_PRIORITY] [IGNORE] [INTO] tbl_name [(column list)] SELECT ...使用 INSERT ... SELECT 语句,你可以从一个或多个表中读取多个记录行,并将其快速地插入到一个表中。 INSERT INTO tblTemp2 (fldID) SELECT tblTemp1.fldOrder_ID FROM tblTemp1 WHERE
    tblTemp1.fldOrder_ID > 100;一个 INSERT ... SELECT 语句有下列条件的限止: INSERT 语句中的目标表不能在 SELECT 查询部分的 FROM 子句中出现,因为在 ANSI SQL 中,禁止你从正在插入的表中 SELECT。(问题是因为,SELECT 可能会发现在同一运行期内先前被插入的记录。当使用子选择子句时,这种情况将会更容易混淆!) 
    AUTO_INCREMENT 列像平常一样工作。 
    你可以使用 C API 函数 mysql_info() 得到查询的信息。查看章节 6.4.3 INSERT 句法。 
    为了确保二进制日志可以被用于重建最初的表,MySQL 将不允许在 INSERT ... SELECT 期间并发的插入。 
    你当然也可以使用 REPLACE 代替 INSERT 来盖写老的记录行。 
      

  10.   

    在输出的时候不要把重复项输出来就可以了。
    如果在插入前要检查是否有重复项,只能先select一下。