gpt4 book ai didi

php - 如何使用 LIKE 忽略 mysql 搜索查询中的空格?

转载 作者:行者123 更新时间:2023-11-29 04:36:08 24 4
gpt4 key购买 nike

我正在开发一个程序,用户可以通过类(class)代码或名称搜索“类(class)”。我试图做到这一点,如果用户搜索“CODE1002”,数据库中的 CODE 1002 EL 仍然会返回(有一个空格)。如其他帖子所示,我尝试使用 REPLACE 函数但没有成功。

这是我当前的代码(但它不会忽略空格):

$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);

这是我尝试添加 REPLACE 以忽略 course_code 上的空格但没有成功:

$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);

除了不忽略空格外,第一个代码工作完美。

最佳答案

你把替换放在了错误的一边。为了安全起见,让我们对两个操作数都这样做:

REPLACE(course_code, ' ', '') LIKE REPLACE(:searchText, ' ', '')

关于php - 如何使用 LIKE 忽略 mysql 搜索查询中的空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41090795/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com