興味深い 2 つの列を持つ MySQL データベース テーブルがあります。 個別にはそれぞれ重複する可能性がありますが、両方に同じ値を持つ重複があってはなりません。
stone_id
各タイトルが異なる限りupsharge
、またその逆の場合も、重複があっても構いません。ただし、たとえばstone_id
= 412 とupcharge_title
= "sapphire" の場合、その組み合わせは 1 回だけ発生します。
これで結構です:
stone_id = 412 upcharge_title = "sapphire"
stone_id = 412 upcharge_title = "ruby"
これはダメです:
stone_id = 412 upcharge_title = "sapphire"
stone_id = 412 upcharge_title = "sapphire"
両方のフィールドで重複を検出するクエリはありますか? また、可能であれば、データベースで重複を許可しないように設定する方法はありますか?
私はMySQLバージョン4.1.22を使用しています
ベストアンサー1
2 つのフィールドの間に複合キーを設定する必要があります。これには、各行に一意の stone_id と upcharge_title が必要です。
既存の重複を見つけるには、これを試してください:
select stone_id,
upcharge_title,
count(*)
from your_table
group by stone_id,
upcharge_title
having count(*) > 1