Analisis fungsi carian rentetan find_in_set dalam mysql
Pembelajaran yang disyorkan: tutorial video mysql
Keperluan
Dalam sistem, sama ada pesanan atau pesanan pemulangan, Sesetengah platform memerlukan semakan penjual, manakala yang lain tidak, jadi anda boleh menetapkan nod proses untuk pesanan atau pemulangan dalam sistem.
Untuk setiap nod proses, keperluan pelanggan ialah setiap nod harus diedarkan mengikut peranan pekerja di bawah sistem, supaya pesanan boleh diberikan kepada individu dan bukannya diproses oleh pekerja keseluruhan syarikat.
Rancang
Untuk senario di atas, penyelesaian yang saya laksanakan ialah menambah nod yang sepadan untuk medan orang diproses dalam kedua-dua jadual pesanan dan jadual pesanan pulangan Jika berbilang orang boleh memprosesnya , gunakan, untuk memisahkan, Simpan koleksi id pekerja yang sepadan.
Oleh itu, kami juga perlu membuat pengubahsuaian yang sepadan dalam kaedah pertanyaan pesanan Semua orang hanya boleh melihat pesanan yang boleh mereka proses.
Contoh kandungan jadual adalah seperti berikut:
Apabila pekerja log masuk ke sistem, kami boleh mendapatkan id mereka yang sepadan, dan kita perlu Cari id dalam medan yang sepadan untuk melihat sama ada ia berada dalam semakan perniagaan, semakan kewangan atau koleksi pengirim. Pada masa ini, bagaimanakah SQL harus diubah?
Fungsi
Sebelum menukar SQL, saya fikir banyak fungsi MYSQL telah diringkaskan sebelum ini, dan untuk pelaksanaan di atas, pasti akan ada fungsi yang sepadan dalam MYSQL untuk membantu kami mencapainya. Sudah tentu, saya menjumpainya.
1. Pengenalan
MySQL menyediakan fungsi rentetan terbina dalam dipanggil FIND_IN_SET(), yang membolehkan anda mencari kedudukan rentetan tertentu dalam senarai rentetan yang dipisahkan koma.
2. Sintaks: FIND_IN_SET(needle,hystack)
Fungsi FIND_IN_SET() menerima dua parameter:
-
needle
Ya Rentetan untuk mencari. -
haystack
ialah senarai rentetan yang dipisahkan koma untuk dicari.
Fungsi FIND_IN_SET() mengembalikan integer atau nilai NULL bergantung pada nilai parameter:
- Jika jarum atau timbunan jerami adalah NULL , fungsi mengembalikan nilai NULL.
- Kembalikan sifar jika jarum tiada dalam timbunan jerami, atau jika timbunan jerami adalah rentetan kosong.
- Jika jarum berada dalam timbunan jerami, kembalikan integer positif.
3. Pertempuran praktikal
Berikut ialah SQL pesanan yang boleh diproses oleh pekerja dengan nombor 8910 dalam projek dan sedang menunggu semakan perniagaan:
SELECT t.id_,t.order_sn,t.create_time, t.business_employee_ids,cus.customer_title FROM wms_orders t LEFT JOIN wms_customer cus ON cus.id = t.buyer_id WHERE t.order_status != 100 AND t.comp_id = 8815 AND FIND_IN_SET( '8910', t.business_employee_ids ) AND t.order_status = 14 AND ( t.parent_order_sn IS NULL OR t.parent_order_sn = '' ) ORDER BY t.id_ DESC
Keputusan adalah seperti berikut:
Dalam tangkapan skrin keputusan di atas, ketiga-tiga pesanan dengan ID 6594, 6523, dan 6373 hanya boleh diproses oleh nombor pekerja 8910. Kami akan menggunakan nombor pekerja SQL di atas Jika ia ditukar kepada 8912, maka ketiga-tiga pesanan ini tidak seharusnya berada dalam julat hasil, sekali gus mengesahkan sama ada ia boleh digunakan untuk membuat pertanyaan.
Hasil pertanyaan adalah seperti berikut:
Hasilnya membuktikan bahawa tiada masalah dengan pertanyaan.
Selingan
Dua hari lalu, seorang rakan sekerja menyiarkan tangkapan skrin dalam kumpulan dan bertanya soalan, seperti berikut:
Penerangan ringkas:
Lajur alamat imej menyimpan alamat pusat data lama kami, dan kini pusat data baharu dalam talian, ia perlu diganti dengan alamat baharu untuk mendapatkan imej.
Selepas membaca ini, saya memikirkan fungsi REPLACE() dalam MYSQL yang pernah saya gunakan sebelum ini, yang boleh menggantikan rentetan. Oleh itu, kenyataan kemas kini adalah seperti berikut:
UPDATE wms_platform_wear_brand SET brand_img = REPLACE ( brand_img, "http://***/udata/interface/timer/pic/getAttachPic.do?attachId=", "wms/orderGoods.do?method=getAttachPic&attachId=" )
Pembelajaran yang disyorkan: tutorial video mysql
Atas ialah kandungan terperinci Analisis fungsi carian rentetan find_in_set dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



MySQL sesuai untuk pemula kerana mudah dipasang, kuat dan mudah untuk menguruskan data. 1. Pemasangan dan konfigurasi mudah, sesuai untuk pelbagai sistem operasi. 2. Menyokong operasi asas seperti membuat pangkalan data dan jadual, memasukkan, menanyakan, mengemas kini dan memadam data. 3. Menyediakan fungsi lanjutan seperti menyertai operasi dan subqueries. 4. Prestasi boleh ditingkatkan melalui pengindeksan, pengoptimuman pertanyaan dan pembahagian jadual. 5. Sokongan sokongan, pemulihan dan langkah keselamatan untuk memastikan keselamatan data dan konsistensi.

Navicat sendiri tidak menyimpan kata laluan pangkalan data, dan hanya boleh mengambil kata laluan yang disulitkan. Penyelesaian: 1. Periksa Pengurus Kata Laluan; 2. Semak fungsi "Ingat Kata Laluan" Navicat; 3. Tetapkan semula kata laluan pangkalan data; 4. Hubungi pentadbir pangkalan data.

Buat pangkalan data menggunakan Navicat Premium: Sambungkan ke pelayan pangkalan data dan masukkan parameter sambungan. Klik kanan pada pelayan dan pilih Buat Pangkalan Data. Masukkan nama pangkalan data baru dan set aksara yang ditentukan dan pengumpulan. Sambung ke pangkalan data baru dan buat jadual dalam penyemak imbas objek. Klik kanan di atas meja dan pilih masukkan data untuk memasukkan data.

MySQL adalah sistem pengurusan pangkalan data sumber terbuka. 1) Buat Pangkalan Data dan Jadual: Gunakan perintah Createdatabase dan Createtable. 2) Operasi Asas: Masukkan, Kemas kini, Padam dan Pilih. 3) Operasi lanjutan: Sertai, subquery dan pemprosesan transaksi. 4) Kemahiran Debugging: Semak sintaks, jenis data dan keizinan. 5) Cadangan Pengoptimuman: Gunakan indeks, elakkan pilih* dan gunakan transaksi.

MySQL dan SQL adalah kemahiran penting untuk pemaju. 1.MYSQL adalah sistem pengurusan pangkalan data sumber terbuka, dan SQL adalah bahasa standard yang digunakan untuk mengurus dan mengendalikan pangkalan data. 2.MYSQL menyokong pelbagai enjin penyimpanan melalui penyimpanan data yang cekap dan fungsi pengambilan semula, dan SQL melengkapkan operasi data yang kompleks melalui pernyataan mudah. 3. Contoh penggunaan termasuk pertanyaan asas dan pertanyaan lanjutan, seperti penapisan dan penyortiran mengikut keadaan. 4. Kesilapan umum termasuk kesilapan sintaks dan isu -isu prestasi, yang boleh dioptimumkan dengan memeriksa penyataan SQL dan menggunakan perintah menjelaskan. 5. Teknik pengoptimuman prestasi termasuk menggunakan indeks, mengelakkan pengimbasan jadual penuh, mengoptimumkan operasi menyertai dan meningkatkan kebolehbacaan kod.

Anda boleh membuat sambungan MySQL baru di Navicat dengan mengikuti langkah -langkah: Buka aplikasi dan pilih Sambungan Baru (Ctrl N). Pilih "MySQL" sebagai jenis sambungan. Masukkan nama host/alamat IP, port, nama pengguna, dan kata laluan. (Pilihan) Konfigurasikan pilihan lanjutan. Simpan sambungan dan masukkan nama sambungan.

Anda boleh membuka phpmyadmin melalui langkah -langkah berikut: 1. Log masuk ke panel kawalan laman web; 2. Cari dan klik ikon phpmyadmin; 3. Masukkan kelayakan MySQL; 4. Klik "Login".

Langkah -langkah untuk melaksanakan SQL di Navicat: Sambungkan ke pangkalan data. Buat tetingkap editor SQL. Tulis pertanyaan SQL atau skrip. Klik butang Run untuk melaksanakan pertanyaan atau skrip. Lihat hasilnya (jika pertanyaan dilaksanakan).
