简体   繁体   English

使用 PHP 在 SQL 数据库中搜索部分匹配

[英]Searching for a partial match in a SQL database with PHP

I have a php file that search a SQL database.我有一个搜索 SQL 数据库的 php 文件。 It takes a string from a textbox and tries to match it to various attributes for the database.它从文本框中获取一个字符串,并尝试将其与数据库的各种属性相匹配。 Here is the code that performs the searched:这是执行搜索的代码:

    if ($filter['meta_info']) {
    $search_string = $filter['meta_info'];
    unset($filter['meta_info']);
    $m_intSortField = null;
    $m_strWhere .= (($m_strWhere) ? " AND " : "")."(MATCH     (`courses`.`assigned_id`,`courses`.`title`,`courses`.`author`,`courses`.`keywords`,`courses`.`  abstract`,`courses`.`objective`,`courses`.`summary`,`courses`.`copyright`,`courses`.`notes`) AGAINST ('".mysql_escape_string($search_string)."' IN BOOLEAN MODE))";
}

My problem is, I want it to return courses that have a partial match to the assigned ID not just a complete match.我的问题是,我希望它返回与分配的 ID 部分匹配的课程,而不仅仅是完全匹配。 Anyone know how I could do this?有谁知道我怎么能做到这一点?

Turn off strict mode on your mysql options, or use LIKE.关闭 mysql 选项上的严格模式,或使用 LIKE。

SELECT id,name from LESSONS where name LIKE "English%"; SELECT id,name from LESSONS where name LIKE "English%";

returns返回

|  id | Name
|  2  | English Literature
|  8  | English Language

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM