2015-02-18 2 views
0

Я делаю поиск mysql, в котором можно также искать имя пользователя. Это мой PHP (MySQL) Код:
как добавить 2 столбца MySQL

SELECT * FROM feed_info WHERE (first_name LIKE '%$search_content%' OR last_name LIKE '%$search_content%' OR email_id LIKE '%$search_content%' OR feed_area LIKE '%$search_content%' OR feed_date LIKE '%$search_content%') 

Но, когда я пытался найти в first name и last name оба, как Джон Дальтон, он не показывает никакого результата. Я мог найти проблему, что я искал только first nameORlast name. Но не можете найти способ добавить эти 2 столбца.

Итак, я хочу, чтобы можно было найти first nameиlast name.
Для. Когда кто-то ищет Джон Дальтон, он должен показать результат

+0

Это обычное поведение, 'LIKE '% $ search_content%' 'означает, что столбец должен иметь« John Dalton »и может быть другими символами до и после этого. Проверьте полнотекстовый поиск в mysql. –

+0

Можете ли вы, пожалуйста, уточнить свой вопрос? С некоторыми данными samole вашей таблицы и результатом вы хотите. –

ответ

2
WHERE CONCAT(first_name,' ',last_name) LIKE '%$search_content%' 

т.е.;

WHERE CONCAT(first_name,' ',last_name) LIKE 'John Dalton'

ли это поможет.?

+0

Ответ правильный, но он работает с 'LIKE' вместо' = ',' CONCAT (first_name, '', last_name) LIKE '% $ search_content%' '. Итак, вы должны отредактировать ответ. –

+0

отредактирован .. наилучшим образом. – TeeKea

0

Такая вещь должна быть сделано с помощью полнотекстового индекса, с использованием таблиц MyISAM

ALTER TABLE feed_info ADD FULLTEXT(first_name, last_name); 
SELECT * FROM feed_info WHERE MATCH(first_name, last_name) AGAINST('John Dalton'); 
0

Один маленький шаг вперед, чтобы добавить случай, когда имя и фамилия просили:

SELECT * 
FROM feed_info 
WHERE (first_name LIKE '%$search_content%' 
    OR last_name LIKE '%$search_content%' 
    OR email_id LIKE '%$search_content%' 
    OR feed_area LIKE '%$search_content%' 
    OR feed_date LIKE '%$search_content%' 
    OR LOWER(first_name) + ' ' + LOWER(last_name) = LOWER('$search_content')) 

Это то, что я думаю, что вы просили. Но вы все равно не сможете найти, например, фамилию и адрес электронной почты.

+0

не работает .... –

+0

Попробуйте этот скорректированный код, обратите внимание, что теперь это будет точное совпадение не с верхним регистром или без него. – Daniel

0

Попробуйте этот запрос!

$sql="SELECT * FROM feed_info where 
MATCH (
first_name,last_name,email_id,feed_area,feed_date 
) 
AGAINST ('$search_content' IN BOOLEAN MODE)"; 

Этот запрос используется для полнотекстового поиска в mysql.

Измените движок таблицы на InnoDB, если этот запрос не работает В Phpmyadmin напишите эту команду!

ALTER TABLE feed_info ENGINE=InnoDB; 
Смежные вопросы