Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara menyimpan pesanan?

Anda dapat menyimpan pesanan sebagai literal, dan menggunakan pengurutan leksikal:

1. A
2. Z

Tambahkan tugas:

1. A
3. L
2. Z

Tambahkan lebih banyak:

1. A
4. B
3. L
2. Z

Pindahkan 2 antara 1 dan 4:

1. A
2. AL
4. B
3. L

dll.

Anda hanya memperbarui satu catatan pada satu waktu:cukup ambil satu huruf rata-rata di antara yang pertama yang berbeda:jika Anda meletakkan di antara A dan C , Anda mengambil B , jika Anda meletakkan di antara ALGJ dan ALILFG , Anda mengambil ALH .

Huruf di sebelah yang ada dihitung sebagai yang ada digabungkan dengan yang di sebelah Z . saya. jika Anda perlu meletakkan di antara ABHDFG dan ACSD F, Anda menghitungnya di antara ABH dan AB(Z+) , dan tulis AB(letter 35/2) , yaitu ABP .

Jika Anda kehabisan panjang string, Anda selalu dapat melakukan penataan ulang penuh.

Pembaruan:

Anda juga dapat menyimpan data Anda sebagai daftar tertaut.

Lihat artikel di blog saya tentang cara melakukannya di MySQL :

Singkatnya:

/* This just returns all records in no particular order */

SELECT  *
FROM    t_list

id      parent
------- --------
1       0
2       3
3       4
4       1

/* This returns all records in intended order */

SELECT  @r AS _current,
        @r := (
        SELECT  id
        FROM    t_list
        WHERE   parent = _current
        )
FROM    (
        SELECT  @r := 0
        ) vars,
        t_list

_current id
-------  --------
0        1
1        4
4        3
3        2

Saat memindahkan item, Anda harus memperbarui paling banyak 4 baris.

Tampaknya ini cara paling efisien untuk menyimpan daftar terurut yang sering diperbarui.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tabel basis data tidak ada menurut kompiler studio Android

  2. Driver Jdbc Tidak Ditemukan

  3. MYSQL JOIN di beberapa tabel tidak mengembalikan hasil

  4. Pilih dalam hubungan banyak-ke-banyak di MySQL

  5. Pilih Semua Acara dengan Acara->Jadwal->Tanggal antara tanggal mulai dan berakhir di CakePHP