GroupBy msql sorgu

2 Cevap php

I have a bunch of ID's. I can assign them once a day.

Ben herhangi bir kimlik numarası mevcut dağıtmak için (ben 24 saatlik bir süre içinde hepsini dışarı el vermedi), ve herhangi bir mevcut varsa, veritabanına yeni bir satır yazmak söyleyerek iseniz görmek, benim veritabanını sorgulamak gerekir Kimliği dağıttı olduğunu. Ben de belli bir zamanda hangi kimliği düzenlenen hangi kullanıcı bilmek gerekir.

The only way I can figure this is by creating two tables - one active_ids (contains who owns a particular ID right now) and one id_records (contains who owned IDs currently and in the past). Then I would say something like:

UPDATE active_ids SET user_id=xyz WHERE UNIX_TIMESTAMP(current_timestamp) - UNIX_TIMESTAMP(date) > 84600 LIMIT 1;

ve daha sonra veri ile id_records başka rekor pusing.

Is there a way I can do this with one table? I'm using PHP and MySQL.

Teşekkürler!

2 Cevap

Tabii, kullanıcı kimliği sadece tüm User_id kreasyonlar damgası ve sonra ne olduğunu görmek için zaman-tabanlı sorguları kullanarak arama yapabilir, gerçek birincil anahtar değil sağladı.

Sen türü DATE bir "gün" sütun ve "User_id" sütun var, ve bir bileşik birincil anahtar kullanabilirsiniz (day,user_id).

Ya ben şüpheli daha iyi bir fikir olabilir: gerçekten benzersiz bir kimliği var, o bir "erişim kodu" yerine benzersiz olmayan id arama ve kompozit benzersiz bir kısıtlaması var.