mysql alanları arıyor içeriği

2 Cevap php

Ben bir tablo kurulum var aşağıdaki yolu

  `id` int(11) NOT NULL AUTO_INCREMENT,
  `eventid` int(11) NOT NULL,
  `invites` text COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`id`)

Bu tablodaki ben bu gibi bakmak satırlar var

1, 127, '32215, 55648, 89887, 55555, 66666, 33333'
2, 168, '44444, 33333, 121212, 0540541'

Nasıl böyle bir i 33333, hem satırları dönecekti aramak istedim sanki belirli bir sayıda bir maç için invites alanın contnts arama ederim ama ben aranır eğer 44444 sadece ikinci dönmek?

2 Cevap

Sana find_in_set() kullanmak, bu yüzden bir şey gibi inanıyorum:

select * from tablename where find_in_set('44444', invites);

Bu çok ama çok iyi bir veritabanı tasarımı değildir.

Bir düz metin alanındaki değerleri bir dizi depolama - - yanlış bir yan not olarak, bana veritabanı şeması unutmayın sağlar. Eğer böyle bir-çok ilişki sorgulamak istiyorsanız, tek bir olay ve bu gibi tek bir daveti arasındaki ilişkiyi tanımlayan başka bir tablo olması gerektiğini:

eventid invitationid
1 15
1 16
1 17
2 18
3 19
3 20

Sonra gerçekten başarılı olacaktır standart SQL sorguları yapmak ve mantıklı olacaktır mümkün olacak.