Jump to content
Sign in to follow this  
b1naryc0de

Sort Mysql

Recommended Posts

dalam table aku ada 'id' yang aku set sebagai integer dan guna autoincrement.. biler autoincrement setiap kali kita masuk data nilai dia bertambah..

Tapi misalan kata aku nak masukkan satu data tapi aku nak set id dia jadi nilai 2.. Tapi id = 2 dah wujud termasuk 3,4, dan seterusnya.. Macammana aku nak set id=2 dan dalam masa yang sama id yang lebih dari 2 akan +1 atau turun satu anak tangga.. 2 jadi 3, 3 jadi 4, 4 jadi 5 dan seterusnya??

Kalau guna sql order atau sort dia akan sort untuk result jer.. Tapi aku nak sort dalam database itu sendiri..

Selain tue aku guna php dan phpmyadmin..

Share this post


Link to post
Share on other sites

ni penyalahgunaan autoincrement...

autoincrement memang untuk autoincrement..

kalau nak buat preference, maknanya data kemudian, lebih priority dari data awal, buat satu column lain untuk priority tu..

contoh..

id (autoincrement) | nama | kepentingan

1 | ali | 1

2 | chua | 2

3 | emilia | 3

lepas tu katakan nak masuk nama "bakar" dengan kepentingan "2",

maka:

id (autoincrement) | nama | kepentingan

1 | ali | 1

2 | chua | 3

3 | emilia | 4

4 | bakar | 2

macam tu la susunan dia.. nanti sort ikut kepentingan, bukan ikut id

camner nak ubah kepentingan bila kita masukkan data baru? buat la SQL command yang akan buat kepentingan+1 apabila kepentingan >= 2

jadi kita update semua, 1 tetap 1, 2 jadi 3, 3 jadi 4 dan seterusnya, kemudian masukkan data yang ada kepentingan "2"

Share this post


Link to post
Share on other sites

heheh jangan marah biggrin.gif

Betullah.. memang penyalahgunaan autoincrement.. dia akan tetap kira berapa banyak data dah dimasukkan walaupun id 1,2,3 tu dah delete dia tetap proceed dengan angka 4 tongue.gif

Mekasih bagi tunjuk ajar.. smile.gif

Share this post


Link to post
Share on other sites

Kalo nak sort database itu sendiri macam mane?? Kira bukan sort result dia tapi yang dalam database itu sendiri.. Boleh ker??

cth dalam database

id | nama

2 | chu

1 | phua

3 | kang

kalo sort pakai sql guna order by akan papar ikut turutan 1, 2 dan 3 pada result sahaja.. Tapi dalam databse susunan dia tetap seperti di atas..

dan misalan kata kita tambah satu data 'chi' di mana id = 2 dan id yang sebelum tu >=2 kita +1.. Dalam database akan jadi camnie:

id | nama

3 | chu

1 | phua

4 | kang

2 | chi

Boleh ker dalam database tue kita susun dia jadi:

id | nama

1 | phua

2 | chu

3 | kang

4 | chi

??

Share this post


Link to post
Share on other sites

tak marah... cuma menerangkan jer..

database direkacipta supaya kita tak perlu fikir macam mana nak sort data tu dalam database, dan query SQL yang moden setahu saya tak der "speed penalty" kalau data tu berterabur...

tapi kalau nak jugak sorted...

1. create temporary table

2. "select" semua data dalam table asal, ikut susunan yang kita nak

3. "insert" dalam temporary table

4. drop table asal

5. create balik table asal, berserta dengan columnnya

6. "select" semua data dalam temporary table

7. "insert" dalam table asal

jadi la sorted.. tapi seperti yang dikatakan... step ni tak perlu, dan amat tak efisien kalau table tu ada data yang banyak

Share this post


Link to post
Share on other sites

database direkacipta supaya kita tak perlu fikir macam mana nak sort data tu dalam database
Sokong bro sharuzzaman.. Org selalu salah anggap. Yg penting cara mcm mana nak query data tu jadi bentuk yg kita mahu. Cuba bayangkan mcm data disimpan dlm harddisk.. satu file pun mungkin disimpan bertabur2 (fragmentation), tapi bila load dlm memory jadi elok je.. anggaplah cara "load ke memory" sbg SQL statements..

Share this post


Link to post
Share on other sites

kalo set kan salah satu field tu mempunyai atribute autoincrement....camna nak insert data using SQL but through PHP??

INSERT INTO taBLE values('id', 'nama', 'umur');

dekat bhgian ID tu adalah Autoincrement....Camnak penempatan variable PHP dkt sql statement kat atas nih?

Share this post


Link to post
Share on other sites

Tak perlu masukkan column yg auto_increment tu dlm insert statement

INSERT INTO MyTable (nama, umur) VALUES ('Ahmad', 3)

p.s: jgn tumpang topik orang

Share this post


Link to post
Share on other sites

Tak perlu masukkan column yg auto_increment tu dlm insert statement

INSERT INTO MyTable (nama, umur) VALUES ('Ahmad', 3)

p.s: jgn tumpang topik orang hehehehe

hehehe.....

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...