如何在数据库表中搜索字符串并在 laravel 中检索匹配的列名
How to search a string in database tables and retrieve matched columns name in laravel
我有一个 table 有以下栏目。
标题、副标题、系列、模糊、keyword_one、keyword_two、keyword_three、keyword_four、keyword_five、keyword_six、keyword_seven、
现在我想搜索一个“单词”……或一个字符串,然后检索 2 个内容 (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 变量。
我有一个 table 有以下栏目。 标题、副标题、系列、模糊、keyword_one、keyword_two、keyword_three、keyword_four、keyword_five、keyword_six、keyword_seven、
现在我想搜索一个“单词”……或一个字符串,然后检索 2 个内容 (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 变量。