2016-03-21 13 views
0

Uygulamamın birden fazla dili desteklemesi, dil kimliğine dayalı teklif ayrıntılarını almak istiyorum. Bu, katılarak alabilirim ancak seçtiğim dil için herhangi bir değer yoksa, varsayılan dil metnini almak benim zorluğumdur. İki languages.default dilde metin olabilirMysql sorgusu kullanarak dile göre ayrıntılar alın?

yani

Teklifim başlık zorunludur ve teklif başlığı bulunmalıdır. Ama bazen kullanıcı ikinci dilde kullanıcı teklif listeleme teklif ederken, ikinci dil, teklif başlığı girmek alışkanlık, seçilen dil teklif başlığı orada değil çünkü varsayılan dilden başlık teklif almak istiyorum. Tek bir liste sorgusu :(aşağıda verilen

Benim Tablo yapısı, MySQL kullanarak elde edebilirsiniz nasıl

enter image description here

?

cevap

0

kullanın SELECT deyiminde bir VAKA anahtarı yapabilirsiniz nasıl kolaylık sağlamak için saklı bir prosedürle sarılırlar

CREATE PROCEDURE get_offer(
    IN p_language_id INT, 
    IN p_offer_id INT 
) 
BEGIN 
    SELECT * 
     FROM Offers o 
     JOIN Offer_details od 
     ON o.id = od.offers_id 
     JOIN languages l 
     ON l.id = od.languages.id 
     WHERE 
     CASE WHEN 
      p_language_id IS NOT NULL 
     THEN 
      p_language_id = l.id 
     ELSE 
      is_default = TRUE 
     END 
     AND p_offer_id = o.id 
END 
O zaman dil kimliği CALL get_offer($lid,$oid) ile veya CALL get_offer(null,$oid)

ile ayarlanmış