cari

Rumah  >  Soal Jawab  >  teks badan

Apakah alternatif kepada pengendali LIKE apabila menanyakan sebilangan besar baris?

<p>Saya mempunyai jadual dengan lajur yang menyimpan rentetan rawak seperti ini: </p> <pre class="brush:php;toolbar:false;">example_id = qwhs77gt65g7*</pre> <p>Sesetengah data pada lajur kini mempunyai asterisk (*), manakala data lain tidak. </p> <p>Saya perlu memilih yang ada. Saya menggunakan pertanyaan ini: </p> <pre class="brush:php;toolbar:false;">PILIH example_id DARI example_tbl DI MANA example_id SEPERTI ‘%*%’</pre> <p>Sekarang ini biasanya tidak menjadi masalah, tetapi saya menyoal berjuta-juta baris dan daripada apa yang saya dapat tahu, pengendali LIKE menjejaskan prestasi saya. Pertanyaan akan mengambil masa beberapa jam untuk diselesaikan</p> <p>Soalan saya ialah apakah alternatif kepada pengendali LIKE? </p> <p>PS Asterisk sentiasa berada di hujung rentetan. Tidak pasti sama ada itu membantu</p>
P粉191610580P粉191610580466 hari yang lalu491

membalas semua(1)saya akan balas

  • P粉063862561

    P粉0638625612023-09-03 00:00:31

    Memandangkan anda menyebut "tanda bintang sentiasa di hujung" maka anda boleh mencuba

    其中 example_id LIKE '%*'.

    Ini akan menemui sebarang nilai yang berakhir dengan "*"

    atau

    ialah mencari subrentetan dalam lajur jadual.

    Salah satu cara untuk mencapainya ialah menggunakan fungsi instr(), yang mengambil 3 parameter.

    Sintaks: instr(kedudukan, rentetan, sub_rentetan)

    Kedudukan:

    1. Ungkapan integer, memberikan kedudukan pertama yang sepadan Carian subrentetan bermula dengan aksara dalam rentetan.
    2. String: String ialah teks anda.
    3. sub_string: substring yang anda cari Mencari. Jika instr() tidak dijumpai, mengembalikan 0 perlawanan.

    Sekarang bagaimana untuk menggunakan ini pada meja? Oleh kerana fungsi instr() ialah x3, ia mudah digunakan.

    Contoh: tapis[ZCT] di mana instr(1,DIPERUNTUKANKEPADA,"Ram") <> 0.

    Di mana 1 ialah kedudukan permulaan untuk mencari subrentetan, ALLOTEDTO ialah nama lajur yang terdiri daripada rentetan, dan parameter terakhir ialah subrentetan itu sendiri. Ini akan memberi anda semua rekod dalam jadual di mana lajur ALLOTEDTO mengandungi subrentetan "Ram"

    Ini bersamaan dengan.

    Pilih * daripada ZCT di mana ALLOTEDTO serupa dengan "%Ram%".

    Nota: Fungsi Instr() adalah peka huruf besar-besaran, jadi sentiasa gunakan fungsi huruf besar atau huruf kecil.

    balas
    0
  • Batalbalas