У меня есть код, который формирует запрос на основе параметров, полученных с других страниц. Но иногда он может получить два одинаковых имени столбца и записать что-то вроде этого:
Код: Выделить всё
SELECT * FROM table WHERE column1 in (1, 2, 3) AND column1 in (4, 5)
Конечно, это условие не сработает, потому что оно не может быть одновременно 1/2/3 и 4/5.
Как проще всего превратить строку во что-то подобное?
Код: Выделить всё
SELECT * FROM table WHERE column1 in (1, 2, 3, 4, 5)
будут и другие условия IN с другими именами столбцов, поэтому я не могу поместить их все в одну скобку.
Код происходит примерно так.
Код: Выделить всё
for ($i=0;$icolumn1, [7]=>column2);
$string_with_all_keys = Array = ([2]=>1,2,3, [3]=>4,5,6, [7]=>1,2,3);
Это может произойти по-разному, и я не могу рассматривать «столбец 1» конкретно, потому что он воспринимается как элемент массива, который может изменяться. Мне нужно иметь возможность определять, когда столбец повторяется в конечной строке, а затем заменять все повторяющиеся условия IN одним условием для каждого имени столбца.
Подробнее здесь:
https://stackoverflow.com/questions/784 ... ing-an-sql