Как я могу получить только строки, где 2 (или более) пункта «Где из многих» верны?
Например:
SELECT *
FROM A
WHERE CONVERT(AES_DECRYPT(name,'".$this->key."'),CHAR) LIKE '%".$this->escape($name)."%'"
OR CONVERT(AES_DECRYPT(name2,'".$this->key."'),CHAR) = '".$this->escape($name2)."'"
OR CONVERT(AES_DECRYPT(name3,'".$this->key."'),CHAR) = '".$this->escape($name3)."'"
OR CONVERT(AES_DECRYPT(name4,'".$this->key."'),CHAR) = '".$this->escape($name4)."'"
.....
есть ли простой способ получить только результаты, где 2 (или более) совпадают, без создания огромного оператора SQL (каждый столбец с каждым другим столбцом - (имя И имя2) ИЛИ (имя И имя3) ИЛИ (имя И имя4) ИЛИ ... )
отличается, я генерирую SQL во время выполнения (LIKE и " = "), но Ник отлично решил проблему.






В MySQL вы можете использовать тот факт, что он обрабатывает логические выражения как 1 или 0 в числовом контексте. Таким образом, чтобы проверить выполнение двух или более условий, вы можете написать
WHERE (condition 1) + (condition 2) + ... + (condition n) >= 2
Обратите внимание, что круглые скобки вокруг каждого условия необходимы для предотвращения проблем с приоритетом операторов.
Будет ли это ровно 4 условия LIKE или больше?