2

フィールドが存在するかどうかを確認するSQLステートメントはありますか?例:次のデータベースがあります。URL, IsCrawled, Levelなど。URLがすでに存在するかどうかを確認する必要があります。他の分野は気にしません。私は非常に高速なクローラーを書いていますが、これは必要です。

4

3 に答える 3

3
ALTER TABLE `table`
ADD UNIQUE INDEX `urls` (`URL`)

または単純な、

ALTER TABLE `table`
ADD UNIQUE(`URL`);

ただし、最初の方法を使用します。動作する2番目の方法についても読んだだけです。そうではないかもしれません

于 2012-09-02T15:10:03.043 に答える
1

これは、あなたの望むことですか?

SELECT COUNT(*)
FROM tableName
WHERE `URL` = 'urlHERE'

0存在しない場合の結果になります。または、フィールドに一意のインデックスを追加しますURL

ALTER TABLE tableName
ADD CONSTRAINT indexName UNIQUE (`Url`)

このように、Insertすでに存在するURLを挿入すると、ステートメントは失敗します。

于 2012-09-02T15:10:09.767 に答える
1

インデックスの下でプレーンセレクトを使用してみませんか。

SELECT ID FROM TABLE WHERE URL = @URL

選択がnullでない場合は、すでに1つあります。

ここで、問題に応じたもう1つの優れたアイデアは、一意の制約を追加して、設計上、DBがその値の重複を許可しないようにすることです。

ここで、URLの一部のみを比較して(つまりドメイン)を確認したい場合は、LIKE比較関数を使用して、同じドメイン名で保存されているURLがすでに1つあるかどうかを確認できます。

于 2012-09-02T15:12:39.643 に答える