Beetje onduidelijke titel misschien, maar het ``probleem'' is als volgt: een site heeft een nieuwssysteem waarbij nieuwsberichten altijd in het engels aanwezig zijn, en wellicht ook in een andere taal, dat dan de voorkeurstaal van de gebruiker kan zijn. Op het moment dat een gebruiker de nieuwspagina bekijkt is het de bedoeling dat alle nieuwsitems worden getoond. Deze het liefst in de voorkeurstaal, maar is die niet aanwezig, dan in het Engels.
Op zich niet echt heel moeilijk, maar het probleem was dat de rest van de site allemaal al klaar was en alles gebaseerd was op een functie die 1 query result als waarde teruggaf, en de rest niet echt meer aanpasbaar was. (ja, ik weet het
maar ik had de site niet gemaakt). Gelukkig werd er gebruik gemaakt van mysql 5, en was het met een query als de volgende te doen (even uit mijn hoofd, de echte was nog erger):
Op zich werkt het wel, maar het is wel een idioot zware query voor zoiets simpels. Bovendien is het niet echt mogelijk zoiets te migreren naar een andere server, aangezien de meeste servers toch nog mysql 4.0 draaien. Heeft iemand enig idee hoe zoiets, gezien de gestelde voorwaarden, toch makkelijker kan?
Op zich niet echt heel moeilijk, maar het probleem was dat de rest van de site allemaal al klaar was en alles gebaseerd was op een functie die 1 query result als waarde teruggaf, en de rest niet echt meer aanpasbaar was. (ja, ik weet het
SQL:
1
2
3
| (SELECT * FROM news_text WHERE language=$prefered_language) UNION (SELECT * FROM news_text WHERE language="engels" AND news_id NOT IN (SELECT * FROM news_text WHERE language=$prefered_language)) |
Op zich werkt het wel, maar het is wel een idioot zware query voor zoiets simpels. Bovendien is het niet echt mogelijk zoiets te migreren naar een andere server, aangezien de meeste servers toch nog mysql 4.0 draaien. Heeft iemand enig idee hoe zoiets, gezien de gestelde voorwaarden, toch makkelijker kan?