1. 论坛系统升级为Xenforo,欢迎大家测试!
    Dismiss Notice

SQL 问题求教

Discussion in '后端开发' started by 不学无术, Feb 15, 2006.

  1. 不学无术

    不学无术 Ulysses 的元神

    Joined:
    Aug 31, 2005
    Messages:
    16,714
    Likes Received:
    39
    一个表中仅有一个字段 Title

    我现在想增加一条记录,但是要保证记录不重复,可以写成在一条 SQL 语句中吗?

    要实现的功能是:

    有一组数据存放在一个数组中,要存入 Titles 表,每一项对应一条记录,怎么操作效率最高?

    我的想法是:

    循环

    Code:
    INSERT INTO Titles Title VALUES '" & strTitle & "' WHERE (SELECT COUNT(*) FROM Titles WHERE Title = '" & strTitle & "') = 0;
    结果出现如下错误信息:

    请指点!

    谢谢!

    :)
     
    #1 不学无术, Feb 15, 2006
    Last edited: Feb 15, 2006
  2. 不学无术

    不学无术 Ulysses 的元神

    Joined:
    Aug 31, 2005
    Messages:
    16,714
    Likes Received:
    39
    是不是这样使用 WHERE 不对呢?查了 SQL Server 手册,没看到这样的用法。

    :(
     
  3. srsman

    srsman Active Member

    Joined:
    Nov 8, 2005
    Messages:
    1,920
    Likes Received:
    6
    就不告诉你!就不告诉你!就不告诉你。。。。。。。:p
     
  4. notnull

    notnull New Member

    Joined:
    Sep 27, 2005
    Messages:
    11,720
    Likes Received:
    37
    偶是用判断:
    Code:
    if conn.execute("select top 1 Title from Titles where Title='"& strTitle  &"'").eof then
    	conn.execute("INSERT INTO Titles(Title) VALUES('" & strTitle & "')")
    end if
     
  5. notnull

    notnull New Member

    Joined:
    Sep 27, 2005
    Messages:
    11,720
    Likes Received:
    37
    如果你想执行的稍微再快一点的话,吧这部分写成存储过程,每次调用让数据库去执行判断就可以了。
     
  6. 不学无术

    不学无术 Ulysses 的元神

    Joined:
    Aug 31, 2005
    Messages:
    16,714
    Likes Received:
    39
    Access 的。

    :(
     
  7. notnull

    notnull New Member

    Joined:
    Sep 27, 2005
    Messages:
    11,720
    Likes Received:
    37
    日~~
    我还以为是SQL server呢
     
  8. notnull

    notnull New Member

    Joined:
    Sep 27, 2005
    Messages:
    11,720
    Likes Received:
    37
    ACCESS的话
    把里面那个top 1去掉就可以了吧