webForumDet fria alternativet

Databasen vägrar sortera rätt

Databaser & SQL

12 svar · 741 visningar · startad av Helmertz

Medlem sedan maj 2005353 inlägg
Frågan#1

Hej.
Jag frågar databasen redan i phpMyAdmin enligt följande.

SELECT *
FROM `mp_dish`
ORDER BY `name` ASC

Resultatet blir

 			bolognese
			cacciatora
			calzone
			caruso
			färsini
			gudfader
			helle
			hula-hula
			marinara
			tropicana
			alpacino
			alpina
			atena
			bagarens
			bambi
			blandsallad
			capricciosa
			ciaociao
			dolly
			favoriten
			fireball
			funghi
			grekisksallad
			hakis
			halmstadspecial
			hawaii
			hbkspecial
			hotsebbe
			husetsspecial
			kebabpizza
			kebabpizzaspecial
			kebabrulle
			kebabsallad
			kebabtallrik
			kycklingpizza
			kycklingrulle
			kycklingsallad
			kycklingtallrik
			labedranos
			lalott
			lamaffia
			lottisspecial
			mammamia
			marcopolo
			margharita
			medusa
			mexicana
			minerva
			morris
			nobel
			portofino
			quattrostagioni
			rhodosrulle
			rimini
			romana
			rosett
			rossini
			räksallad
			salami
			tonfisksallad
			tonis
			twister
			ufo
			vegetariana
			vegetarisksallad
			vesuvio
			vulkan
			wigwam
			ziliansspeciall

Hur ska jag fråga för att få ut alla poster i bokstavsordning?

edit- gjorde utskriften lättare att läsa

Medlem sedan juni 200032 967 inlägg
#2

Du kanske har en massa poster där mellanslag lagrats först?

Medlem sedan sep. 2006867 inlägg
#3

Jag är ingen fena på mySQL men vore det inte bättre att köra order by name istället för order by 'name'? Sorterar den inte på strängen 'name' istället för i kolumnen name?

Medlem sedan juni 200032 967 inlägg
#4

Sorterar den inte på strängen 'name' istället för i kolumnen name?

Nej, backticks (det är inte apostrofer alltså) används runt tabell- och fältnamn (och andra sorters namn för den delen), inte som strängavgränsare, utan som SQL Server och Access använder [] för att undvika att namnet tolkas som något annat än just ett namn.

Medlem sedan maj 2005353 inlägg
#5

@nders skrev:

Du kanske har en massa poster där mellanslag lagrats först?

Nej, all input genomgår en trimning av PHP.

Medlem sedan jan. 2005327 inlägg
#6

Vad är det för datatyp på name?
Och kan möjligen upper eller lower case spela roll?
ASCII värdet på stora och små är ju iallafall olika.
Bara lite ideer, jag har egentligen ingen aning.

/pebi

Medlem sedan maj 2005353 inlägg
#7

Alla värden är lower case, fältet är varchar(30).

Medlem sedan juni 20019 024 inlägg
#8

Lägg upp en sql-dump av tabellen.

Medlem sedan maj 2005353 inlägg
#9

Pace skrev:

Lägg upp en sql-dump av tabellen.

Hur gör man detta i phpMyAdmin/hur ser SQL ut?

edit- hittade

-- phpMyAdmin SQL Dump
-- version 2.6.0-pl3
-- [url]http://www.phpmyadmin.net[/url]
-- 
-- Värd: mysql03.cliche.se
-- Skapad: 08 maj 2007 kl 20:05
-- Serverversion: 4.0.21
-- PHP-version: 4.4.4
-- 
-- Databas: `helmertz_com`
-- 

-- --------------------------------------------------------

-- 
-- Struktur för tabell `mp_dish`
-- 

CREATE TABLE mp_dish (
  dishId int(11) NOT NULL auto_increment,
  name varchar(30) NOT NULL default '',
  dishType tinyint(4) NOT NULL default '0',
  standardPrice int(11) NOT NULL default '0',
  familyPrice int(11) default NULL,
  menuId int(11) NOT NULL default '0',
  PRIMARY KEY  (dishId)
) TYPE=MyISAM AUTO_INCREMENT=86 ;

Vad betyder auto_increment=86? Aldrig sett förut och har inte ställt in det.

Medlem sedan juni 20014 421 inlägg
#10

Du väljer exportera i phpMyAdmin. :)

Medlem sedan maj 2005353 inlägg
#11

Okej, nu förstod jag vad auto_increment står för.. smart :)

... passar på att bumpa iom att jag inte gjorde det innan.

PS: Läs mitt förra inlägg för mysql dump

Medlem sedan juni 20014 421 inlägg
#12

du har inte dumpat databasen, bara strukturen.

Medlem sedan maj 2005353 inlägg
#13
-- phpMyAdmin SQL Dump
-- version 2.6.0-pl3
-- [url]http://www.phpmyadmin.net[/url]
-- 
-- Värd: mysql03.cliche.se
-- Skapad: 08 maj 2007 kl 21:48
-- Serverversion: 4.0.21
-- PHP-version: 4.4.4
-- 
-- Databas: `helmertz_com`
-- 

-- --------------------------------------------------------

-- 
-- Struktur för tabell `mp_dish`
-- 

CREATE TABLE `mp_dish` (
  `dishId` int(11) NOT NULL auto_increment,
  `name` varchar(30) NOT NULL default '',
  `dishType` tinyint(4) NOT NULL default '0',
  `standardPrice` int(11) NOT NULL default '0',
  `familyPrice` int(11) default NULL,
  `menuId` int(11) NOT NULL default '0',
  PRIMARY KEY  (`dishId`)
) TYPE=MyISAM AUTO_INCREMENT=86 ;

-- 
-- Data i tabell `mp_dish`
-- 

INSERT INTO `mp_dish` VALUES (1, 'margharita', 1, 46, 99, 1);
INSERT INTO `mp_dish` VALUES (2, 'vesuvio', 1, 47, 98, 3);
INSERT INTO `mp_dish` VALUES (6, 'kycklingsallad', 3, 911, 19, 5);
INSERT INTO `mp_dish` VALUES (85, 'salami', 1, 50, 105, 28);
INSERT INTO `mp_dish` VALUES (8, 'funghi', 1, 42, 94, 2);
INSERT INTO `mp_dish` VALUES (9, 'capricciosa', 1, 42, 94, 4);
INSERT INTO `mp_dish` VALUES (10, 'hawaii', 1, 42, 94, 5);
INSERT INTO `mp_dish` VALUES (11, 'la maffia', 1, 42, 94, 6);
INSERT INTO `mp_dish` VALUES (12, 'rimini', 1, 42, 94, 7);
INSERT INTO `mp_dish` VALUES (18, ' bolognese', 1, 45, 94, 8);
INSERT INTO `mp_dish` VALUES (19, ' calzone', 1, 45, 94, 9);
INSERT INTO `mp_dish` VALUES (20, 'tonis', 1, 45, 94, 10);
INSERT INTO `mp_dish` VALUES (21, ' cacciatora', 1, 45, 94, 11);
INSERT INTO `mp_dish` VALUES (22, 'romana', 1, 45, 94, 12);
INSERT INTO `mp_dish` VALUES (23, ' caruso', 1, 48, 99, 13);
INSERT INTO `mp_dish` VALUES (24, ' marinara', 1, 48, 99, 14);
INSERT INTO `mp_dish` VALUES (25, 'porto fino', 1, 48, 99, 15);
INSERT INTO `mp_dish` VALUES (26, 'la lott', 1, 48, 99, 16);
INSERT INTO `mp_dish` VALUES (27, 'dolly', 1, 48, 99, 17);
INSERT INTO `mp_dish` VALUES (28, 'mamma mia', 1, 48, 99, 18);
INSERT INTO `mp_dish` VALUES (29, ' hula-hula', 1, 48, 99, 19);
INSERT INTO `mp_dish` VALUES (30, ' gudfader', 1, 48, 99, 20);
INSERT INTO `mp_dish` VALUES (31, ' färsini', 1, 48, 99, 21);
INSERT INTO `mp_dish` VALUES (32, 'quattro stagioni', 1, 48, 99, 22);
INSERT INTO `mp_dish` VALUES (33, ' tropicana', 1, 48, 99, 23);
INSERT INTO `mp_dish` VALUES (34, 'vegetariana', 1, 48, 99, 24);
INSERT INTO `mp_dish` VALUES (35, ' helle', 1, 48, 99, 25);
INSERT INTO `mp_dish` VALUES (36, 'mexicana', 1, 50, 105, 26);
INSERT INTO `mp_dish` VALUES (37, 'lottis special', 1, 50, 105, 27);
INSERT INTO `mp_dish` VALUES (39, 'husets special', 1, 50, 105, 29);
INSERT INTO `mp_dish` VALUES (40, 'kycklingpizza', 1, 50, 105, 30);
INSERT INTO `mp_dish` VALUES (41, 'marco polo', 1, 58, 125, 31);
INSERT INTO `mp_dish` VALUES (42, 'hakis', 1, 58, 125, 32);
INSERT INTO `mp_dish` VALUES (43, 'alpina', 1, 58, 125, 33);
INSERT INTO `mp_dish` VALUES (44, 'hbk special', 1, 58, 125, 33);
INSERT INTO `mp_dish` VALUES (45, 'al pacino', 1, 58, 125, 35);
INSERT INTO `mp_dish` VALUES (46, 'bambi', 1, 58, 125, 36);
INSERT INTO `mp_dish` VALUES (47, 'ufo', 1, 58, 125, 37);
INSERT INTO `mp_dish` VALUES (48, 'rossini', 1, 58, 125, 38);
INSERT INTO `mp_dish` VALUES (49, 'ciao ciao', 1, 58, 125, 39);
INSERT INTO `mp_dish` VALUES (50, 'rosett', 1, 58, 125, 40);
INSERT INTO `mp_dish` VALUES (51, 'medusa', 1, 58, 125, 41);
INSERT INTO `mp_dish` VALUES (52, 'la bedranos', 1, 58, 125, 42);
INSERT INTO `mp_dish` VALUES (53, 'halmstad special', 1, 58, 125, 43);
INSERT INTO `mp_dish` VALUES (54, 'vulkan', 1, 58, 125, 44);
INSERT INTO `mp_dish` VALUES (55, 'fireball', 1, 58, 125, 45);
INSERT INTO `mp_dish` VALUES (56, 'twister', 1, 58, 125, 46);
INSERT INTO `mp_dish` VALUES (57, 'wig wam', 1, 58, 125, 47);
INSERT INTO `mp_dish` VALUES (58, 'kebabpizza', 1, 53, 110, 48);
INSERT INTO `mp_dish` VALUES (59, 'kebabpizza special', 1, 58, 125, 49);
INSERT INTO `mp_dish` VALUES (60, 'zilians special', 1, 58, 125, 51);
INSERT INTO `mp_dish` VALUES (61, 'morris', 1, 58, 125, 52);
INSERT INTO `mp_dish` VALUES (62, 'bagarens', 1, 58, 125, 53);
INSERT INTO `mp_dish` VALUES (63, 'favoriten', 1, 58, 125, 54);
INSERT INTO `mp_dish` VALUES (64, 'hot sebbe', 1, 58, 125, 55);
INSERT INTO `mp_dish` VALUES (65, 'minerva', 1, 58, 125, 55);
INSERT INTO `mp_dish` VALUES (66, 'atena', 1, 58, 125, 56);
INSERT INTO `mp_dish` VALUES (67, 'nobel', 1, 58, 125, 57);
INSERT INTO `mp_dish` VALUES (68, 'kebabtallrik', 2, 55, 0, 1);
INSERT INTO `mp_dish` VALUES (71, 'kycklingtallrik', 2, 60, 0, 2);
INSERT INTO `mp_dish` VALUES (72, 'kebabrulle', 2, 48, 0, 3);
INSERT INTO `mp_dish` VALUES (73, 'kycklingrulle', 2, 55, 0, 4);
INSERT INTO `mp_dish` VALUES (74, 'rhodosrulle', 2, 50, 0, 5);
INSERT INTO `mp_dish` VALUES (75, 'kebabsallad', 3, 55, 0, 1);
INSERT INTO `mp_dish` VALUES (76, 'räksallad', 3, 55, 0, 2);
INSERT INTO `mp_dish` VALUES (77, 'vegetarisksallad', 3, 55, 0, 3);
INSERT INTO `mp_dish` VALUES (80, 'blandsallad', 3, 55, 0, 6);
INSERT INTO `mp_dish` VALUES (82, 'tonfisksallad', 3, 55, 0, 4);
INSERT INTO `mp_dish` VALUES (84, 'grekisksallad', 3, 55, 0, 7);

edit- Och HÄR syns mellanslagen men inte vid vanlig SELECT. Vad trött man blir.. Lärdom för dagen: använd dump oftare.

257 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)