Sziasztok!
Van egy lekérdezésem, ami nem azt a sorrendű eredményt adja vissza amire vágyok:
(SELECT id,prize,upgrades FROM deals WHERE upgrades LIKE '%highlighted%' ORDER BY prize DESC)
UNION
(SELECT id,prize,upgrades FROM deals WHERE upgrades NOT LIKE '%highlighted%' ORDER BY prize DESC)
Az a célom, hogy elöszőr azon sorokat kérdezze le, amelyek upgrades mezőjében szerepel a 'highlighted' szó, ezután csapja hozzá azokat a sorokat, amelyek upgrades mezőjében nem szerepel a 'highlighted' szó. A probléma az, hogy az első SELECT rendesen lekérdezi a sorokat és megfelelően listázza, de a második SELECT nem képes erre. Lekérdezi a 'highlighted'-et nem tartalmazó upgrades mezővel rendelkező sorokat, de azokat nem rendezi prize szerint.
Külön külön a két SELECT rendesen lefut és jól rendezi az eredményt, de együtt nem.
A lekérdezés szempontjából fontos lehet, hogy a lekérdezések még SELECT-enként rendelkeznek JOIN-okkal, de azt állapítottam meg, hogy nem ez okozza a hibát.
Továbbá, az upgrades mező default értéke NULL, és van olyan eset is, amikor üres a mező, ezért a második SELECT WHERE ágában van még néhány kiegészítés, mint: OR upgrades='' OR upgrades IS NULL.
Előre is köszönöm a segítségeteket!