Rumah  >  Soal Jawab  >  teks badan

Berbilang huruf permulaan untuk menyusun negara

Dalam kelas sekolah menengah saya sekarang, kami belajar tentang MySQL dan cara memilih dan mengisih item berdasarkan kriteria tertentu. Contohnya

Select CountryCode from Country where code like '_W%'

Kod ini berfungsi dalam pangkalan data saya, tetapi ada satu masalah yang tidak dapat saya selesaikan:

Dapatkan semula semua data untuk negara bermula dengan aksara "N", "O" atau "P". menyusun mereka Disusun mengikut abjad nama.

Saya faham bahawa kita perlu menggunakan kad bebas dan saya mencuba semuanya tetapi ia tidak berjaya, sama ada ia hanya menunjukkan negara bermula dengan N atau senarai penuh dengan "null"

Pertanyaan kod semasa saya ialah

SELECT * from country where name like 'N%' 'O%' 'P%' order by name

Saya akan menghargai sebarang bantuan segera kerana saya mempunyai subjek lain yang perlu saya tangani

Jawapannya kelihatan seperti ini sedikit: Tetapi lebih terperinci, dengan lebih banyak lajur dan baris, dengan data seperti KDNK, jangka hayat, dll.

Nama Tanah Besar
Namibia Afrika
Oman Asia
Pakistan Asia
-------- --------------

Terima kasih Sohail atas jawapannya, ia berkesan!

P粉797855790P粉797855790183 hari yang lalu409

membalas semua(2)saya akan balas

  • P粉587780103

    P粉5877801032024-03-31 14:54:52

    ...name LIKE 'N%' OR name LIKE 'O%' OR name LIKE 'P%'

    tidak akan menjadi sangat cekap kerana ia akan dianggap secara dalaman sebagai 3 subkueri dengan padanan corak. Tambahan pula, OR menjadikannya perlu untuk enjin menyemak pendua - walaupun kita tahu tiada pendua. Walaupun kebanyakan (tetapi bukan semua) perkara ini akan diperbaiki oleh pengoptimum, adalah lebih baik (dan lebih mudah dibaca) untuk menulis seperti ini:

    select * from country
     where left(name, 1) in 'NOP'
     order by name

    balas
    0
  • P粉115840076

    P粉1158400762024-03-31 11:05:36

    Ini sepatutnya berkesan kerana anda perlu menulis name LIKE 'N%' OR name LIKE ...

    SELECT * FROM country WHERE name LIKE 'N%' OR name LIKE 'O%' OR name LIKE 'P%' ORDER BY name

    balas
    0
  • Batalbalas