mam w tabeli kolumnę rozdzielczosc i w niej wpisy tego formatu 1200x1800 jaki dać typ danych, żeby po takim zapytaniu wybierały się według rozdzielczości?
Kod
SELECT * FROM tabela ORDER by rozdzielczosc;
-- Przypisuję sobie zmienna, Ty używasz kolumny więc to jest zbędne. SET @rozdzielczosc = '1280x800'; -- Tak sobie wyświetlasz dane na ekranie. SELECT CAST(LEFT(@rozdzielczosc, LOCATE('x', @rozdzielczosc)-1) AS UNSIGNED) AS width, CAST(SUBSTR(@rozdzielczosc, (LOCATE('x', @rozdzielczosc)+1), LENGTH(@rozdzielczosc)) AS UNSIGNED) AS height; -- W ten sposób możesz użyc wyniku do sortowania (mnożysz wysokość * szerokość). SELECT (CAST(LEFT(@rozdzielczosc, LOCATE('x', @rozdzielczosc)-1) AS UNSIGNED) * CAST(SUBSTR(@rozdzielczosc, (LOCATE('x', @rozdzielczosc)+1), LENGTH(@rozdzielczosc)) AS UNSIGNED)) AS wyliczona_rozdzielczosc; -- U Ciebie powinno zadziałać więc w ten sposób. SELECT * FROM tabela ORDER BY (CAST(LEFT(kolumna, LOCATE('x', kolumna)-1) AS UNSIGNED) * CAST(SUBSTR(kolumna, (LOCATE('x', kolumna)+1), LENGTH(kolumna)) AS UNSIGNED));