Environment Подробности (XAMPP) Apache/2.4.4 (Win32) OpenSSL/1.0.1e PHP/5.5.3 Версия сервера: 5.6.11 - MySQL Community ServerПочему запрос mysql LIKE иногда не возвращает результаты?
У меня есть панель поиска, чтобы искать новые пользователей, с которыми у меня нет никаких отношений. Когда я добавляю параметры поиска, я иногда получаю результаты и иногда не получаю результатов.
Почему происходит следующее:
Поиск: "Sarah T" возвращает информацию о пользователе Sarah АСМАП
В то время как поиск: "Sarah Test" ничего не возвращает.
Я использую trim() и str_replace() для удаления белых символов. т.е. «Сары ах» становятся «Сара»
В базе данных:
firstname | lastname
Sarah | Testname
Robert | Richards
Используя следующую хранимую процедуру:
DROP PROCEDURE IF EXISTS `get_contact_list_new`//
CREATE DEFINER=`root`@`localhost` PROCEDURE `get_contact_list_new`(
IN _id bigint(20),
IN _args varchar(255)
)
BEGIN
IF _args IS NULL THEN
SELECT u.* FROM user_user_relationship AS uur
RIGHT JOIN user AS u
ON uur.user_id_one = _id AND u.user_id = uur.user_id_two
WHERE u.user_id != _id AND uur.status IS NULL;
ELSE
SET @args = CONCAT("%",_args,"%");
SELECT u.* FROM user_user_relationship AS uur
RIGHT JOIN user AS u
ON uur.user_id_one = _id AND u.user_id = uur.user_id_two
WHERE u.user_id != _id AND uur.status IS NULL AND
(u.firstname LIKE @args OR u.lastname LIKE @args OR (u.firstname + u.lastname) LIKE @args OR u.username LIKE @args OR u.email LIKE @args) ;
END IF;
END//
Soemtimes я могу добавить случайные символы в середине т.е. sarzqtes и Саре Имя теста возвращается.
Это ошибка с запросом MySQL Like Like? Или это мой запрос? Какой бы он ни был - не могли бы вы объяснить мне, почему?
Эти проблемы также возникали на консоли phpmyadmin mysql.
call get_contact_list_new(1,"saraht")
возвращает информацию о Sarah АСМАП
call get_contact_list_new(1,"sarahtes")
возвращает ничего.
Ха, я должен заметить, что, поскольку я использовал его для аргов. Имейте в виду, я думал, что это как-то иначе. Большое спасибо! – mcv