Hallo,

is een mysql-tabel default gesorteerd of is er een manier om dat voor elkaar te krijgen?

Groeten,

slibbe
Een mysql tabel loopt standaart op ID (als je deze hebt) van 1 tot ....
En met de functie ORDER BY kun je dat in je Query aanpassen.
@leo
.. Niet helemaal waar.. ze worden standaard getoond op volgorde waarin de records zijn toegevoegd. (dit hoeft niet persé de volgorde van de ID's te zijn ;)
ORDER BY is om de volgorde van je output aan te passen.

Ik vrees dat het probleem er in zit dat ik uit ga van de foreign key en samengestelde sleutels, alleen worden die niet ondersteund in ISAM files.

Ik wil kunnen lezen op id en volgnr.
Moet ik dan naar INNODB?
normaal zou je moeten kunnen opgeven:

SELECT * FROM TABLE WHERE ... ORDER BY id ASC, volgnummer ASC
Ja wel.
Zolang de tabel klein is, is daar weinig op tegen. Als de tabel groot wordt, lijkt me het niet ideaal de hele tabel in geheugen te laden, maar misschien valt dat mee.
Ik zou liever de relevante records inlezen.
Haha, heb de tabel even omgebouwd, zonder KEY zodat het id niet uniek meer hoeft te zijn.

Ben benieuwd tegen welke nadelen ik ga aanlopen ;)
Ik snap nog steeds niet je probleem.

Je kan je query zo ingewikkeld maken als je zelf wilt en alsnog een ORDER BY toevoegen.


SELECT 
	id,
	voornaam,
	achternaam,
	adres
FROM gegevens
WHERE id = (
	SELECT id
	FROM facturen
	WHERE betaald = 0
	)
ORDER BY achternaam, voornaam
LIMIT 0,20;


Nu krijg je een lijstje met mensen die hun factuur nog niet hebben betaald gesoorteerd op achternaam en daarna op voornaam. Van a-z.
Er worden maximaal 20 records weergegeven (en dus ook niet meer dan dat ingeladen).
Maar die LIMIT is in dit voorbeeld natuurlijk beetje raar, maar je snapt hopelijk zo wel dat je op die manier je query zo kan aanpassen dat je niet alles hoeft te selecteren en in te lezen.
Tabelletje met id, volgnr en een hele meuk andere velden.

Wat ik wil is prikken met bv id=51. Als er één zo'n record is, dan is het volgnr 0. Als er meerdere records met dat id=51 zijn, dan is de vraag hoeveel er dat zijn, wat te zien is aan de opeenvolgende volgnrs 0,1,2,3,...
Vervolgens kun je dan natuurlijk een volgnr toevoegen, maar dat is natuurlijk een klein kunstje.

Ik kom er wel uit met een tabel zonder key, en dan zelf de verschillende dingen programmeren, maar het lijkt me niet de handigste methode.
Ik kom er wel uit met een tabel zonder key, en dan zelf de verschillende dingen programmeren, maar het lijkt me niet de handigste methode.
Dat druk je nog voorzichtig uit! Dit is ronduit slecht. Sterker nog, slechter dan slecht!

Waarom zal men in het verleden toch een key hebben uitgevonden? Omdat het een waardeloos iets is? Dacht het niet... Ga je database eens normaliseren en ga eens een fatsoenlijk systeem opzetten. Ik krijg nu de indruk dat je zelf een DBMS wilt gaan bouwen, maar dan in PHP.

Oh ja, een database is veel meer dan alleen een bak met gegevens. De intelligentie die er achter zit, bv. indexen e.d., is veel belangrijker. Al is dat juist 1 van de zwakste punten van MySQL wanneer je het vergelijkt met PostgreSQL, Oracle, DB2, etc.

Reageren