Database 如何在数据库表中搜索字符串并在laravel中检索匹配的列名

Database 如何在数据库表中搜索字符串并在laravel中检索匹配的列名,database,laravel,eloquent,laravel-5.8,Database,Laravel,Eloquent,Laravel 5.8,我有一张桌子,下面有一列。 标题、副标题、系列、模糊、关键字一、关键字二、关键字三、关键字四、关键字五、关键字六、关键字七、 现在我想搜索一个“单词”或一个字符串,然后检索两件事(1)标题和(2)在其中找到该字符串或单词的列……可能不是最佳答案,但您可以执行以下操作: DB::table('table')->selectRaw('`title`, @word:="%word_to_search%", CASE WHEN `subtitle` LIKE @word THEN 'subtitl

我有一张桌子,下面有一列。 标题、副标题、系列、模糊、关键字一、关键字二、关键字三、关键字四、关键字五、关键字六、关键字七、


现在我想搜索一个“单词”或一个字符串,然后检索两件事(1)标题和(2)在其中找到该字符串或单词的列……

可能不是最佳答案,但您可以执行以下操作:

DB::table('table')->selectRaw('`title`, @word:="%word_to_search%", CASE WHEN `subtitle` LIKE @word THEN 'subtitle' WHEN `series` LIKE @word THEN 'series' WHEN `blurs` LIKE @word THEN 'blurs' WHEN `keyword_one` LIKE @word THEN 'keyword_one' WHEN `keyword_two` LIKE @word THEN 'keyword_two' WHEN `keyword_three` LIKE @word THEN 'keyword_three' WHEN `keyword_four` LIKE @word THEN 'keyword_four' WHEN `keyword_five` LIKE @word THEN 'keyword_five' WHEN `keyword_six` LIKE @word THEN 'keyword_six' WHEN `keyword_seven` LIKE @word THEN 'keyword_seven' END AS `column`')->get();

为了简化起见,我使用了@word变量。

可能不是最好的答案,但您可以这样做:

DB::table('table')->selectRaw('`title`, @word:="%word_to_search%", CASE WHEN `subtitle` LIKE @word THEN 'subtitle' WHEN `series` LIKE @word THEN 'series' WHEN `blurs` LIKE @word THEN 'blurs' WHEN `keyword_one` LIKE @word THEN 'keyword_one' WHEN `keyword_two` LIKE @word THEN 'keyword_two' WHEN `keyword_three` LIKE @word THEN 'keyword_three' WHEN `keyword_four` LIKE @word THEN 'keyword_four' WHEN `keyword_five` LIKE @word THEN 'keyword_five' WHEN `keyword_six` LIKE @word THEN 'keyword_six' WHEN `keyword_seven` LIKE @word THEN 'keyword_seven' END AS `column`')->get();

为了简化起见,我使用了@word变量。

检查这个答案,或者简单地使用->where('name'、'LIKE'、“%$searchTerm}%”->或者where('email'、'LIKE'、“%{$searchTerm}%”)在没有提供任何代码示例的情况下,方法将是创建雄辩的查询,以查找其中一个
关键字*
列匹配的所有行“word”。你可以使用@MahmoudGad提供的
->where()
->orWhere()
示例。一旦你有了结果集合,你就可以在结果集合上使用,只返回你需要的属性。检查这个答案,或者简单地使用->where('name','LIKE',“%{$searchTerm}%”->或where('email','LIKE',“%{$searchTerm}%”)在没有提供任何代码示例的情况下,方法是创建雄辩的查询,该查询将查找
关键字*
列之一与“word”匹配的所有行。您可以使用
->where()
->orWhere()
@MahmoudGad提供的示例。一旦生成了结果集合,您就可以在结果集合上使用,只返回所需的属性。