MySQL SELECT в сочетании с preg_match PHP - PullRequest
0 голосов
/ 29 октября 2019

У меня есть SELECT, который сравнивается, если есть ответ на определенный вопрос для учетной записи

SELECT * FROM questions WHERE questions.id NOT IN (SELECT answers.qid FROM answers where answers.account = '$account')

Затем, в то же время, у меня есть preg_match, который проверяет, соответствуют ли результаты нескольким другим условиямЯзык - $ langsession = строка, которая выглядит как «en, de, fr и т. Д.» Категория - $ catsession = содержит одно слово типа «hotel»

$ lang содержит язык для вопроса (например,. "en") и $ qcat, содержащие категорию (например, "hotel")

while($row = mysqli_fetch_array($result))
          {
        $lang = $row["lang"];
        $qcat = $row["category"];
        if (preg_match('/\b' . $lang . '\b/', $langsession) && $catsession==$qcat) { 
    //some code
}
        }

Что я пытаюсь сделать, это как-то поставить if (preg_match... в запрос SELECT.

1 Ответ

0 голосов
/ 30 октября 2019

После переосмысления своего дела я решил использовать FIND_IN_SET вместо regex.

Вот что мне помогло

SELECT * FROM questions WHERE questions.id NOT IN
(SELECT answers.qid FROM answers where answers.account = '$account')
and FIND_IN_SET(questions.lang,'$langsession')
and category = '$catsession' order by section
...