SQL Несколько столбцов WHERE в сочетании с LIKE - PullRequest
0 голосов
/ 24 марта 2020

после поиска по всему www I наконец-то закончили с вопросом и, надеюсь, более способными респондентами, чем я.

Я пытаюсь реализовать полнотекстовый поиск на моем страница в Интернете. Запрос Sql работает с условием one WHERE , но не с несколькими. К сожалению, я понятия не имею, как решить мою проблему с помощью EXIST / IN / INNER JOIN или других операторов. Код, который работает:

$sql = "SELECT * FROM artikel WHERE author LIKE '$suchtext' LIMIT $offset, $no_of_abs";

Код, который не работает:

$sql = "SELECT * FROM artikel WHERE (author OR shorty OR vollartikel) LIKE '%$suchtext%' LIMIT $offset, $no_of_abs";

Переменная $ suchtext правильно передана и получена через jquery $ ajax POST и my php сценарий.

Пример цели:

author  |   volltext  |  shorty
--------+-------------+---------
tulum   |   tul       |  asf
rae     |   zutotu    |  vizetu

$ suchtext is "tu" Результаты: 2 Row1 & Row2

Я ценю любые ответы.

Решение:

$sql = "SELECT * FROM artikel WHERE author LIKE '%$suchtext%' OR shorty LIKE '%$suchtext%' OR vollartikel LIKE '%$suchtext%' LIMIT $offset, $no_of_abs"; 

1 Ответ

0 голосов
/ 24 марта 2020

LIKE - это двоичный оператор, который принимает две строки. OR - логический оператор, который работает с логическими значениями.

Вам необходимо явно перечислить это:

(author LIKE ? OR
 shorty LIKE ? OR
 vollartikel LIKE ?
)

Обратите внимание, что здесь используется ? в качестве заполнителя параметра. Используйте параметры при построении SQL запросов в приложениях.

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