2016-03-22 47 views
-1

Ben hangi doc adlı bir tablo var olan birkaç alanlar: Birden çok değer sütununda bir değer nasıl seçilir?

user_id | user_name | hostel | summary | branch | year | doc 

ve bu

giriş en alanlar şunlardır:

user_id user_name hostel  summary  branch year  doc 
1  shikhar.447 K.P-6  TnpRegi  CSE  2011  s.JPG 
2 shikhar.447  K.P-6  EndSeme  CSE  2011  placemet.jpeg 
3 shikhar.447  K.P-9  DDD   I.T  2011  og (1).jpg 
5 shikhar.447  K.P-6,K.P-9 EEE   CSE,I.T 2011,2012 Drawing6.jpg 
6 shikhar.447  K.P-6,K.P-9 Xzxx  CSE,I.T 2011,2012 Drawing5.jpg 
8 shikhar.447  K.P-6  Zxzxzx  CSE  2011  Drawing2.jpg 
9 shikhar.447  K.P-6,K.P-9 NLKLD  CSE  2011  Drawing.jpg 

Sonra ben temizlemek istiyorum düzgün görünmüyorsa:

1 is user_id,shikhar.447 is user_name,K.P-6 is hostel,TnpReg is summary,CSE 
is branch,2011 is year,s.JPG is doc 
similarly in some column you can see there are multiple entries with a comma(,) 
like K.P-6,K.P-9. 

benim soru ben çok ı sel eğer yazmak gerektiğini sorgu vb pansiyon = "K.P-6", şube = "CSE", yıl = 2011 onay kutusunun ve It gönderin. Tek sütun değerleriyle birlikte çoklu sütun değerlerinin doc sütun değerlerinden bana sonuç göstermelidir. Böyle

Başlangıçta yazdım sorgusu:

SELECT doc,summary FROM doc WHERE hostel="K.P-6" OR branch="CSE" AND year="2011" 

ama sadece bana tek değer sütunu verir Birden değerler sütununda arama yapmaz.

yüzden herkes bu bana yardım edin.

+3

tablo normalleştirmek normalleşmesini görmek için. – Strawberry

cevap

0

O tek bir sütunda birden fazla değer depolamak için kötü bir fikirdir.

Senin durumunda olsa da, sen find_in_set() kullanabilirsiniz:

SELECT doc, summary 
FROM doc 
WHERE find_in_set('K.P-6', hostel) > 0 OR 
     find_in_set('CSE', branch) AND 
     find_in_set('2011', year); 

Ayrıca koşulları için OR ve AND ile tutarlı olmalıdır. Hangisini istediğinizden emin değilim, bu yüzden mantığı değiştirmedim. nerede fıkrada

+0

Çok teşekkürler! İstediğim gibi çalıştı. –

1

Kullanım like:

SELECT doc,summary FROM doc WHERE hostel like "%K.P-6%" OR branch like "%CSE%" AND year="2011" 

Ancak öneriyoruz

İlgili konular