在 laravel 或 mysql 中的字符串中搜索文本

search for text within string in laravel or mysql

我使用 my SQL 作为我项目的后端,我需要从 database 获取所有记录,其中输入字符串的某些部分在 database 字符串中可用,例如:

table = seller

id  company_name  seller_name
1   companyname1  seller1
2   companyname2  seller2
3   companyname3  seller3
4   companyname4  seller4

给定的字符串是 1105 companyname1 is outstanding

所以我需要为给定的字符串获取 id = 1 如果可以使用 laravelMySQL 那么请帮助我。

您可以使用 like:

构建查询
where $YourString like concat('%', companyname, '%')

注意:在某些情况下,一个公司名称可能与另一个公司名称非常相似("company1" 和 "company10")。如果这是一个问题,正则表达式可能会有所帮助。

首先,您必须将该字符串转换为数组。

    $str = "1105 companyname1 is outstanding";
    $str = explode(' ' , $str);
    $results = Seller::whereIn('company_name' , $str)->get();



注:

在将随机字符串转换为数组时,会出现用户输入更多空格的错误。

假设用户输入了一个像 $str = "1105 companyname1 is outstanding"; 这样的字符串,这将创建更多的元素。喜欢

array(
  0 => '1104',
  1 => '',
  2 => 'companyname1',
  3 => 'is',
  4 => 'outstanding'
)

所以,为了避免这种情况,我不得不建议您多拆分一些空间。你可以通过

$str = preg_split('/\s+/', $string, -1, PREG_SPLIT_NO_EMPTY);