Mysql 如何通过使用like查询或其他方法匹配列中的前两个字符来从数据库中获取数据

Mysql 如何通过使用like查询或其他方法匹配列中的前两个字符来从数据库中获取数据,mysql,database,laravel,eloquent,Mysql,Database,Laravel,Eloquent,我试图通过匹配前两个字符或字符出现在逗号之前从数据库中获取数据 我想要的是当用户输入为12时得到以下结果,如果12存在于main_类别中,那么应该显示结果,但12应该在第一个逗号之前退出,或者我们可以说是前两个字符 id | company_name | country_id | city_id | main_category ------------------------------------------------------- 1 | ABC |

我试图通过匹配前两个字符或字符出现在逗号之前从数据库中获取数据

我想要的是当用户输入为12时得到以下结果,如果12存在于main_类别中,那么应该显示结果,但12应该在第一个逗号之前退出,或者我们可以说是前两个字符

id | company_name | country_id | city_id | main_category
     -------------------------------------------------------
     1 | ABC          |   1        |  2      |  12,3,6
我试过了

$getResult = $companies->where([

            ["company_name", "LIKE", "%$keyword%"],
            ['main_category', "LIKE", "%$sector%"]

    ])->get();

如果您想从查询开始到结束用逗号进行匹配,可以执行以下操作-

$getResult = $compaies->where("company_name", "LIKE", "%$keyword%")->where('main_category', "LIKE", "$sector,%")->get();

请参阅仅修复已损坏的架构。但您为什么要这样做-@草莓:我没听明白你的意思,这里问的是什么,不是吗?正常化似乎是一个更明智的解决方案。噢!是的,但在这种情况下,我只是试图解决他目前的问题。但是他应该像你说的那样制作一个更好的数据库结构。
$getResult = $compaies->where("company_name", "LIKE", "%$keyword%")->where('main_category', "LIKE", "$sector,%")->get();