确定值是否不在数据库列中

时间:2013-11-22 15:26:07

标签: sql vb.net ms-access

我有一个Microsoft Access表,只有一列包含URL。我需要检查并查看该表中是否存在URL。这样做的最佳方式是什么?

4 个答案:

答案 0 :(得分:2)

使用COUNT进行简单选择应该可以解决问题:

SELECT COUNT(*)
FROM myTableWithUrl
WHERE URL='http://www.stackoverflow.com'

此查询将始终返回包含一个整数列的单行。零表示该URL不存在;任何其他数字表示该URL在那里。

如果在URL列上定义索引,查询可能会更快。

答案 1 :(得分:1)

我会选择

select count(*) records
from yourtable
where url = something

答案 2 :(得分:1)

这是您的类代码,其中 columnname 是包含Url值的列的名称。

Imports System.Data.Oledb


    Dim con As New OledbConnection("Provider=microsoft.Jet.oledb.4.0DataSource=D:\mydata.mdb;")

    Dim cmd As New OledbCommand

    Public var1 As String
    Public url As String

    Public Sub New()

        con.Open()

        cmd.Connection = con
        cmd.CommandText = "SELECT COUNT(*) FROM table1 WHERE *columnname* ="+url
        Dim result = cmd.ExecuteScalar() 
        if Convert.ToInt32(result) = 0 Then //YourStuff
    End Sub

答案 3 :(得分:1)

在性能方面best方式是获得第一个匹配记录。计算所有记录意味着您必须在返回结果之前浏览所有匹配的记录。最有效的解决方案是在找到第一个匹配记录后停止处理,因为当你在第一次匹配后得到答案时,没有必要对所有记录进行计数。

可以使用此查询完成:

SELECT TOP 1 URL FROM TABLE
WHERE URL = 'http://www.stackoverflow.com'

如果你得到URL,那么网址就在那里。如果你得到一个空的结果集,那么它不是。理想情况下,URL已编入索引。