13. november 2006 - 23:50Der er
20 kommentarer og 2 løsninger
ORDER BY virker ikke mere sammen med UNION
(SELECT * FROM produkter WHERE gruppe = '$kid' && titel LIKE 'blomster%' ORDER by titel DESC) UNION (SELECT * FROM produkter WHERE gruppe = '$kid' && titel NOT LIKE 'blomster%' ORDER by titel DESC);
men det virker ikke mere, ORDER by titel DESC ? hvorfor virker det ikke ?
(SELECT * FROM produkter WHERE gruppe = '$kid' && titel LIKE 'blomster%') UNION (SELECT * FROM produkter WHERE gruppe = '$kid' && titel NOT LIKE 'blomster%') ORDER by titel DESC;
Nej vent... Er det ikke noget med at du skal angive feltnavne?
(SELECT felt1, felt2 FROM produkter WHERE gruppe = '$kid' && titel LIKE 'blomster%' ORDER by titel DESC) UNION (SELECT felt1, felt2 FROM produkter WHERE gruppe = '$kid' && titel NOT LIKE 'blomster%' ORDER by titel DESC);
mysql_query("(SELECT *, CONCAT(LEFT(info, 150), '...') AS short FROM produkter WHERE grupppe = '$kid' && titel LIKE 'blomster%' ORDER BY titel) UNION ....
grunden til jeg bruger * er at jeg trækker mange felter ud, men burde jeg skrive alle felter istedet ?
Det er "god form" at angive alle de felter man hiver ud ;) Du kan evt. starte med bare at angive to-tre felter, og se om du får det ønskede resultat - ellers kan du prøve arne_v's løsning :)
hov fik vist skrevet fra min vens konto før, beklager...hvordan får jeg dem sat ind foran her:
mysql_query("(SELECT titel,id, CONCAT(LEFT(info, 150), '...') AS short FROM produkter WHERE grupppe = '$kid' && titel LIKE 'blomster%' ORDER BY titel) UNION .... <- det er vel ikke sådan ?
og hvad med arne_v's eksempel
SELECT *,IF(titel LIKE 'blomster%',1,0) AS startblomst SÅ hvordan får jeg CONCAT(LEFT(info, 150), '...') AS short FROM ind i den ?
SELECT titel, id, CONCAT(LEFT(info, 150), '...') AS short, IF(titel LIKE 'blomster%',1,0) AS startblomst FROM produkter WHERE gruppe = '$kid' ORDER BY startblomst,titel
SELECT titel, id, CONCAT(LEFT(info, 150), '...') AS short, IF(titel LIKE 'blomster%',1,0) AS startblomst FROM produkter WHERE gruppe = '$kid' ORDER BY IF(titel LIKE 'blomster%',1,0) DESC,titel
så nu tror jeg sku det virker, der manglede bare lige en DESC :) sådan her skal den være:
SELECT titel, id, CONCAT(LEFT(info, 150), '...') AS short, IF(titel LIKE 'blomster%',1,0) AS startblomst FROM produkter WHERE gruppe = '$kid' ORDER BY IF(titel LIKE 'blomster%',1,0) DESC,titel DESC
men jeg fatter stadig ikke hvorfor det ikke virker efter vi skiftede til en nyere version af MySQL, der må være blevet lavet nogle andre regler...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.