php - mysql where 表中两个字段之间的数组

标签 php mysql arrays

我有一张 table ,其办公室涵盖一系列邮政编码,其中邮政编码最低和邮政编码最高。另一个表格,其中邮政编码链接到城市名称,

用户搜索一个城市,数据库返回一个数组,其中每个邮政编码都链接到该城市。然后我希望我的代码使用这个邮政编码数组在 Office 表中进行搜索,并查看是否有任何值在最大值和最小值之间。

假设我们搜索了一个返回这些邮政编码的城镇

 $search_string = 25002,25003,25004,25005,25006,25007,25008,25009,25013,25014,    25015,25018,25019,25022,25023,25024,25025,25053,25054,25100,25101,25106,25107,25108,25109,25110,25111,25112,25113,25114,25181,25183,25184

这是我对解决方案的尝试,认为它有效,但显然只针对第一个值进行锻炼。

$query = $this->db->prepare("SELECT contacts.id FROM contacts INNER JOIN contacts_postcodes_links ON contacts_postcodes_links.contact = contacts.id WHERE contacts.id != 0 ".$category1." ".$category2." AND :search_string BETWEEN contacts_postcodes_links.minValue AND contacts_postcodes_links.maxValue ORDER BY id DESC ".$limit."");

所以我需要帮助的部分,是否可以做这样的事情?如果没有,我该如何解决这个问题?

my_array BETWEEN contacts_postcodes_links.minValue AND contacts_postcodes_links.maxValue

最佳答案

通过在同一查询中执行所有操作来解决该问题,

添加了邮政编码与最小值和最大值的内部联接,然后过滤用户输入城市字符串的邮政编码城市。

最终结果

 $query = $this->db->prepare("SELECT DISTINCT(contacts.id) FROM contacts
                            INNER JOIN contacts_postcodes_links ON contacts_postcodes_links.contact = contacts.id
                            INNER JOIN postcodes ON postcodes.postcode >= contacts_postcodes_links.minValue AND postcodes.postcode <= contacts_postcodes_links.maxValue
                            WHERE contacts.id != 0 AND contacts.category_1 = :category_1 AND contacts.category_2 = :category_2
                            AND postcodes.city LIKE :search_string
                            ORDER BY id DESC LIMIT ".$options['limit']." OFFSET ".$options['start']."");

关于php - mysql where 表中两个字段之间的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26469260/

相关文章:

php - 表名作为模型 Codeigniter 中的变量

mysql - 如何将 2 个数据库结果合并到一列中

javascript - 访问 Observable 数组的 _latestValue 元素

php - 具有动态更新查询的 MySQLi 准备语句

mysql - Vapor MySQL 时间戳默认值

javascript - node.js 数组实际上是 HashMap 吗?

javascript - 如何使用 for 循环创建对象数组

java - 使用php更新mysql中的数据时出错

php - 自动完成地址表跨两个表

javascript - $.parseJSON 意外字符