Сравнение константы с массивом (или несколькими значениями.) - PullRequest
0 голосов
/ 20 августа 2011

Я пытаюсь найти совпадения почтовых индексов в районе 25 миль.Допустим, я получил 10 почтовых индексов от своей функции, которая имеет значение true.

Теперь у меня есть значение в переменной, подобной этой:

$zip_res = A0A 1B0, A0A 1G0, ...

имя столбца - postal_code.

Как я могу сопоставить все значения сразу с postal_code?Я не могу использовать цикл, я должен сделать это за один раз.

любые предложения приветствуются.

Редактировать

Оператор MySQL, где используется $ zip_res

$sql=   "SELECT distinct(p.id), p.extra FROM practitioner p INNER JOIN practitioner_category pc ON pc.practitioner_id = p.id AND pc.category_id = ";
$sql .= "'" .$this->category. "' ";
$sql .= "AND p.primary_postal_code in " .$zip_res. " WHERE 1 AND p.status = 1 "; 

Ответы [ 2 ]

0 голосов
/ 20 августа 2011

Похоже, вы просто ищете ключевое слово IN:

SELECT * FROM TABLE_NAME WHERE POSTAL_CODE IN ($zip_res);

Однако, как примечание, вы должны сначала процитировать все эти предметы. Так что вы можете сделать это, прежде чем использовать вышеупомянутый запрос:

$zip_res = "'" . str_replace(',',"','",$zip_res) . "'";
0 голосов
/ 20 августа 2011

Вы можете попробовать использовать

select ... from ... where postal_code ALL($zip_res).

Но я не уверен, потому что в соответствии с руководством вы должны использовать подзапросы. Смотри http://dev.mysql.com/doc/refman/5.5/en/all-subqueries.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...