laravel mysql как искать строку, чтобы узнать, присутствует ли значение - PullRequest
0 голосов
/ 06 мая 2020

Я использую mysql для хранения нескольких проектов. В базе данных mysql каждый проект имеет столбец под названием «ключевые слова», который представляет собой строку. данные выглядят так ... реагировать, nodejs, mysql, html

Я хочу найти строку (ie php, react, mysql, et c), чтобы увидеть, содержится ли он в каждом столбце ключевых слов строк. Я пробовал использовать where и where, но не могу заставить его работать. Я могу найти, где работать, если в ключевых словах только одно значение.

пример с моего контроллера

    public function php()
    {
        $projects = Projects::where('keywords','like',"php")->get();
        // dump($projects);
        return view('projects.php', ['projects' => $projects]);
    }

Пример того, как я использовал whereIn

    public function react()
    {
        $projects = Projects::whereIn('keywords','react')->get();
        return view('projects.react', ['projects' => $projects]);
    }

Когда я использую where или whereIn с более чем одним ключевым словом, я получаю пустой массив. Когда я использую where только с одним ключевым словом (например, я удалил все ключевые слова в строковом столбце, кроме одного), он работает отлично.

Но я хочу иметь несколько ключевых слов в каждом столбце, поскольку каждый проект будет используется на нескольких страницах.

Еще раз спасибо всем! Переполнение стека - это бомба !!!

1 Ответ

0 голосов
/ 06 мая 2020

1-столбец имеет несколько ключевых слов

Если вы собрали все ключевые слова в один столбец, вы должны использовать как с%

$projects = Projects::where('keywords','like',"%php%")->get();

Если вы хотите искать несколько ключевые слова за один раз:

$projects = Projects::where('keywords','like',"%php%")
->orWhere('keywords','like',"%react%")->get();

2-столбец имеет одно ключевое слово

Если вы хотите выполнить поиск по одному ключевому слову в столбце, вы можете использовать

$projects = Projects::where('keywords',"php")->get();

Если вы хотите выполнить поиск по нескольким ключевым словам в столбце, вы можете использовать

$projects = Projects::whereIn('keywords',['php','react'])->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...