10 не работает. like игнорирует все и ищет только точные совпадения. в чем проблема?
Приведи пожалуйста примеры запроса и записей, котрые должны находиться и по факту находятся
В том, что вы не прочли документацыю вашэй библиотеки доступа к mysql по поводу передачи параметров, как минимум.
Пример. У меня есть пользователя в базе Guest_1, Guest_2 и так далее. Когда я ищу Guest_1, то он находит. А когда просто "Guest_" или "Gue" то никаких результатов нету.
а подстановка этой переменной вообще происходит? выведите запрос в лог куда-нибудь перед выполнением и посмотрите, что там вообще получается
да я даже если напрямую запрос пишу как LIKE '%Gues%'. Он ничего не находит. В переменно нет проблем, через нее ведь точные совпадения находит
Чудес не бывает, если шаблон ничего не возвращает, вероятно нет данных, которые соответствуют шаблону. Что имеется в виду под «напрямую»? «напрямую» через код того же приложения? «напрямую» через условный консольный mysql клиент пробовали? Какие реальные данные в таблице? select ud, username from esp_user; ddl таблицы можете показать? какие там character set и collation? может там колейшн кейс сенситив, а значения с маленькой буквы.
Регистр не как не виляет на поиск. Главное что значение было точное
1) Регистр как раз влияет на то, будет ли совпадение или нет банальный пример - https://sqlize.online/sql/mysql80/abce8270d8c8ca268727119667956381/ 2) Какие там значения в таблице мы не знаем, потому я и попросил их показать…
CREATE TABLE esp_user ( id int(14) NOT NULL, type_account varchar(14) NOT NULL, email varchar(30) NOT NULL, password varchar(50) NOT NULL, usck varchar(1000) NOT NULL, username varchar(30) NOT NULL, time_reg int(14) NOT NULL, time_online int(11) NOT NULL, last_page varchar(50) NOT NULL DEFAULT 'Registered' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Вроде никаких collation нету. Это что такое вообще? Пытаюсь понять
Обсуждают сегодня