Mencari Nama Pengguna Walaupun Variasi Ruang Putih
Apabila mencari nama pengguna, selalunya wajar untuk mengabaikan sebarang ruang kosong dalam medan. Sebagai contoh, dalam pangkalan data dengan pengguna "JohnBobJones," "John Bob Jones" dan "JohnBobJones," adalah munasabah untuk mengharapkan carian untuk "John Bob Jones" untuk mendapatkan ketiga-tiga entri.
Pertanyaan SQL dengan Normalisasi Ruang Putih
Untuk mencapai carian agnostik ruang putih ini, pertanyaan SQL berikut boleh used:
SELECT * FROM mytable WHERE REPLACE(username, ' ', '') = REPLACE("John Bob Jones", ' ', '')
Pertanyaan ini menggunakan fungsi REPLACE() untuk mengalih keluar semua aksara ruang putih daripada kedua-dua medan nama pengguna dan rentetan carian. Dengan membandingkan nilai yang dinormalkan, ia memastikan kehadiran atau ketiadaan ruang putih tidak menjejaskan hasil carian.
Pelaksanaan dalam PHP atau Python
Pertanyaan SQL boleh dilaksanakan daripada PHP atau Python menggunakan penyambung pangkalan data yang sesuai. Berikut ialah contoh PHP:
$db = new mysqli('localhost', 'user', 'password', 'database'); $stmt = $db->prepare("SELECT * FROM mytable WHERE REPLACE(username, ' ', '') = REPLACE('John Bob Jones', ' ', '')"); $stmt->execute(); $result = $stmt->get_result();
Dan contoh Python:
import mysql.connector db = mysql.connector.connect( host='localhost', user='user', password='password', database='database' ) cursor = db.cursor() cursor.execute("SELECT * FROM mytable WHERE REPLACE(username, ' ', '') = REPLACE('John Bob Jones', ' ', '')") result = cursor.fetchall()
Coretan kod ini mewujudkan sambungan pangkalan data, laksanakan pertanyaan SQL dengan nilai yang dinormalkan dan dapatkan semula entri yang sepadan .
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari Nama Pengguna Mengabaikan Variasi Ruang Putih dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!