Я сталкиваюсь с проблемой сопоставления / поиска значений в нескольких столбцах в MySQL.
В моей таблице есть имя, владелец, электронная почта, altemail, altemail2, altemail3 имя столбца.
имя = Джон;
электронная почта = [email protected]
теперь имя может быть в столбце имени или владельца, а адрес электронной почты может быть выше четырех столбцов.
Теперь я хочу сделать поиск и перечислить результат, где присутствуют как имя, так и адрес электронной почты. означает, что имя и адрес электронной почты должны совпадать, а не просто имя или адрес электронной почты.
это то, что я сделал до сих пор, но не работает:
SELECT*
FROM $table
WHERE name = '%s' OR owner = '%s' AND email = '%s' OR alt_email = '%s'
OR alt_email2 = '%s' OR alt_email3 = '%s'",$name,$email,$email,$email,$email);
но здесь, если имя совпадает, оно показывает результат и игнорирует электронное письмо, или, если электронное письмо совпадает, оно показывает результат, игнорирует имя. но мне нужно, чтобы информация о пользователе соответствовала имени и электронной почте.
Еще раз спасибо за помощь.
измените свой запрос на этот
SELECT*
FROM $table
WHERE (name = '%s' OR owner = '%s') AND (email = '%s' OR alt_email = '%s'
OR alt_email2 = '%s' OR alt_email3 = '%s')",$name,$name,$email,$email,$email,$email);
Это должно работать:
SELECT * FROM $table WHERE (name = '%s' OR owner = '%s') AND (email = '%s' OR alt_email = '%s' OR alt_email2 = '%s' OR alt_email3 = '%s')",$name,$email,$email,$email,$email);