2016-03-21 5 views
0

Meine Anwendung unterstützt mehrere Sprachen, ich möchte Angebotsdetails basierend auf Sprach-ID erhalten. Dies kann ich durch Beitritt tun, aber meine Herausforderung besteht darin, Standardsprachentext zu erhalten, wenn für die ausgewählte Sprache kein Wert vorhanden ist.Erhalten Sie Details basierend auf Sprache mit mysql-Abfrage?

dh

Mein Angebot Titel kann Text in zwei languages.default Sprache hat, ist obligatorisch und bietet Titel soll da sein. Aber manchmal Benutzer nicht eingeben Angebot Titel in der zweiten Sprache, wenn Benutzer Browsing Angebotsliste in der zweiten Sprache, Ich möchte Angebot Titel von Standard-Sprache, weil ausgewählte Sprache Angebot Titel nicht da ist. Wie kann ich in einer einzigen Eintrag Abfrage :(

My Table Struktur unten angegeben,

enter image description here

Wie ich MySQL erreichen kann mit?

Antwort

0

Verwenden Sie einen CASE-Schalter in Ihrer SELECT-Anweisung , in eine gespeicherte Prozedur eingewickelt

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 

Dann rufen Sie es aus Ihrer App, wenn sie eine haben Sprachidentifikation eingestellt mit CALL get_offer($lid,$oid) oder falls nicht CALL get_offer(null,$oid)

Verwandte Themen