Ich arbeite an einem Programm, bei dem ein Benutzer nach Kurscode oder Name nach einem "Kurs" sucht. Ich versuche es so zu machen, wenn der Benutzer "CODE1002" sucht, wird CODE 1002 EL von der Datenbank immer noch zurückkehren (es gibt ein Leerzeichen). Wie von anderen Posts angezeigt, habe ich versucht, die REPLACE-Funktion ohne Erfolg zu verwenden.Wie kann ich Leerzeichen in MySQL-Suchabfrage mit LIKE ignorieren?
Hier ist mein aktueller Code ist (aber es ist nicht ignoriert Leerzeichen):
$records = $conn->prepare('SELECT (SELECT COUNT(*) FROM courses WHERE (course_code LIKE :searchText OR course_name LIKE :searchText)) AS course_count, course_id, course_code, course_name FROM courses WHERE (course_code LIKE :searchText OR course_name LIKE :searchText) ORDER BY course_code LIMIT 6');
$final_search_term = "%".$search_term."%";
$records->bindParam(':searchText', $final_search_term);
Hier ist mein Versuch, das Hinzufügen REPLACE Plätze auf der course_code ohne Erfolg zu ignorieren:
$records = $conn->prepare('SELECT (SELECT COUNT(*) FROM courses WHERE (REPLACE(course_code,' ','') LIKE :searchText OR course_name LIKE :searchText)) AS course_count, course_id, course_code, course_name FROM courses WHERE (REPLACE(course_code,' ','') LIKE :searchText OR course_name LIKE :searchText) ORDER BY course_code LIMIT 6');
$final_search_term = "%".$search_term."%";
$records->bindParam(':searchText', $final_search_term);
Der erste Code funktioniert perfekt, abgesehen davon, Leerzeichen nicht zu ignorieren.
kann esier sein das Ersetzen in PHP ersten –
auf der rechten Seite sein sollte nicht ersetzen zu tun? – rvnlord