mysql как запрос, как вы можете сортировать таргетинг на два столбца в таблице, но сортировать по результатам, совпадающим с одним столбцом - PullRequest
1 голос
/ 07 апреля 2020

Используя приведенный ниже код, я могу вернуть все товары, которые соответствуют поисковому слову. Однако они упорядочивают таким образом, чтобы продукт с именем, отличным от поисковой фразы, появлялся первым, а продукт с совпадающим именем позже, потому что описание имело совпадение.

Как я могу отсортировать и вернуть товары, название которых соответствует поисковой фразе?

    $sqli = "
SELECT * 
  FROM product 
 WHERE";

Foreach($strarray as $key=>$value){
If($key > 0){
$sqli = $sqli . "OR";
}
$sqli = $sqli . " (Name LIKE '%" . $value . "%' or Description LIKE '%" . $value . "%')";
}

1 Ответ

2 голосов
/ 07 апреля 2020

Добавить предложение ORDER BY:

$ssql .= " ORDER BY Name LIKE '%" . $value . "%' DESC"

Логическое выражение равно 1 для TRUE и 0 для FALSE, поэтому сортировка выполняется по порядку условий по тому, соответствует ли строка условию.

Кстати, вы должны научиться использовать подготовленные заявления для предотвращения SQL инъекций. См. Как можно предотвратить инъекцию SQL в PHP?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...