Apakah alternatif kepada pengendali LIKE apabila menanyakan sebilangan besar baris?
P粉191610580
P粉191610580 2023-09-02 13:02:15
0
1
507
<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粉191610580
P粉191610580

membalas semua(1)
P粉063862561

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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan