Это может быть легко, но я новичок в этом, так что это происходит. Я пытаюсь найти, может ли строка быть найдена в поле базы данных mysql.
Ниже будет найдено точное совпадение
SELECT mycontact, userid
FROM mytable
WHERE email = #form.email#'
Следующее вернет результат, если полевое письмо содержится в form.email
SELECT mycontact, userid
FROM mytable
WHERE email like '%#form.email#%'
Но это не даст того, что я хочу. Я хочу обратить вспять вышеизложенное. Поле электронной почты может содержать более одного адреса электронной почты. Я хочу иметь возможность вводить значение, то есть form.email и искать таблицу и находить любую запись в поле "email", которое содержит form.emal. % LIKE% не будет работать, потому что я не хочу получать более одного. Если кто-то вводит [email protected], я не хочу получать [email protected], [email protected] и т.д. Это сложная часть. Помощь приветствуется. Я использую базу данных MYSQL. Спасибо.
Вам нужно переконфигурировать вашу схему, имея список писем в столбце - очень и очень плохой дизайн, и SQL не очень хорошо разработан для его обработки (как вы уже работаете). Лучше будет таблица email
, где каждый contact
может иметь одну или несколько строк на основе адресов электронной почты, которые они предоставляют.
Поверьте мне, он будет работать лучше и сделает вашу жизнь намного легче. Редизайн теперь.
Если вы сохраняете несколько полей в одном поле, вы должны добавить разделитель как пробел или канал. Вы можете сделать
SELECT mycontact, userid FROM mytable WHERE email like '%#form.email#%'
затем взорвите разделитель и цикл в массиве. Сравните каждое электронное письмо с помощью pregmatch. Но я бы рекомендовал вам использовать отдельную таблицу для этого, как сказано выше. Я бы полностью согласился с ними.
Попробуйте регулярное выражение для выбора.