MySQL поиск текста из двух столбцов - PullRequest
1 голос
/ 27 марта 2010

у меня есть таблица (tbl_world), которая выглядит следующим образом

  id | first_name | last_name | age | class |

Теперь я хочу найти текст, который может быть где угодно в first_name или в last_name

Я использую запрос MySQL ниже

 "SELECT * FROM tbl_world WHERE REGEXP '".$word."' IN( first_name, last_name)";

где $word - пользовательский ввод (означает, что если я ищу 'ад', то в результате также возвращаются 'привет' и 'wellhell')

выше ошибка отображения запроса, пожалуйста, предложите мне оптимизировать метод поиска в MySQL.

дополнительный вопрос: я должен использовать LIKR или RLIKE?

Ответы [ 3 ]

2 голосов
/ 27 марта 2010

Я бы сделал это с:

"SELECT * FROM tbl_world WHERE first_name REGEXP '" . $word .
    "' OR  last_name REGEXP '" . $word . "'"
0 голосов
/ 27 марта 2010
"SELECT * FROM tbl_world WHERE first_name LIKE '%'".$word."%' OR last_name LIKE '%".$word."%'"
0 голосов
/ 27 марта 2010
 "SELECT * FROM tbl_world 
WHERE first_name LIKE  '%".$word."%' 
OR last_name LIKE  '%".$word."%'";

(Рассмотрите возможность включения полнотекстового поиска, если вы хотите найти строку среди нескольких полей.)

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