Есть необходимость проверять базу на наличие пар записей field1-field2. Предполагается, что может идти поиск и наоборот field2-field1. Плюс у каждого поля есть характеристики char1, char2, которые также должны совпадать. Поэтому привиделась такая конструкция поиска:
$q = "SELECT * FROM `table` WHERE (`field1`='".trim($a1[0])."' && `char1`='".trim($a1[1])."' && `field2`='".trim($a2[0])."' && `char2`='".trim($a2[1])."') OR (`field1`='".trim($a2[0])."' AND `char1`='".trim($a2[1])."' AND `field2`='".trim($a1[0])."' AND `char2`='".trim($a1[1])."')";
Есть ли возможность сократить запрос, т.е. применить какой-то оператор или чего?
maiskiykot, просто выглядит криво за счет кривого кода, перепешите под pdo и будет норм )
А в целом - если работает -нет необходимости дергать, задача кода работать, а не выглядеть красиво. И вообще - вы бы приготовили переменные перед вставкой в запрос - уже было бы не так стремно, а с pdo вообще красота будет.
$sql = "SELECT * FROM `table`
WHERE (
`field1`=:field1 and
`char1`=:char1 and
`field2`=:field2 and
`char2`=:char2
)
OR (
`field1`=:field12 and
`char1`=:char12 and
`field2`=:field22 and
`char2`=:char22
)";