如果数字介于间隔之间,则选择SQL

如果数字介于间隔之间,则选择SQL,sql,wordpress,mysqli,intervals,Sql,Wordpress,Mysqli,Intervals,我正忙着为我的一个客户建立一个目录站点,需要稍微检查一下搜索 目录里有一大堆产品。每个产品都能够包含单个、多个和一个项目编号间隔。为了澄清这一点,我在下面列举了几个例子 示例1) 多项目编号 itemnumber=100105109200 示例2) 项目编号的间隔 itemnumber=100-110 示例3) 组合 itemnumber=100-110220300-310400401 因此,我的问题是: 是否有语法允许我检查两个时间间隔 以“-”分隔的数字 如果是,关于如何建立一个允许我 实施

我正忙着为我的一个客户建立一个目录站点,需要稍微检查一下搜索

目录里有一大堆产品。每个产品都能够包含单个、多个和一个项目编号间隔。为了澄清这一点,我在下面列举了几个例子

示例1) 多项目编号

itemnumber=100105109200

示例2) 项目编号的间隔

itemnumber=100-110

示例3) 组合

itemnumber=100-110220300-310400401

因此,我的问题是:

是否有语法允许我检查两个时间间隔 以“-”分隔的数字

如果,关于如何建立一个允许我 实施

如果,您有什么建议吗


其他信息

该网站是在WordPress中建立的,其中itemnumber是一个自定义元字段。Atm我已经连接到
pre_posts
并添加了:-也粘贴到了粘贴箱中,以便于阅读

$where.=”或ID IN(从{$wpdb->postmeta}中选择post_ID,其中的meta_值类似“%”“%$wp_query->query_vars['s']”.“%”和({$wpdb->posts}.ID=post_ID和{$wpdb->posts}.post_状态!='inherit'和({$wpdb->posts}.post_type='produkt

上面的代码只是简单地检查产品元字段是否包含搜索的单词,不够具体



您应该创建自己的函数,该函数将使用create function/create PROCEDURE生成查询

创建程序文档:

字符串函数文档:


在故意非规范化的数据库上使用关系逻辑是不可能的,比如邪恶的“Wordpress自定义元字段”方法

因此,您最好执行两个查询:

  • 一个人可以得到所有的数字
  • 然后在PHP中展开所有间隔(使用array_fill()、range()或其他方法),以创建一个以逗号分隔的常规列表
  • 后者被传递到IN()中的第二个查询
作为一项好处,您将获得更快的执行速度

将“-”替换为“AND”,并使用BETWEEN关键字获取记录:


列名称在100和110之间的位置

检查以“-”分隔的两个数字之间的间隔是什么意思?你能添加一个输入和期望的输出吗?Boris,例2->到哪里的数字用“-”分隔。输入可以是
1-4
,输出将是sql检查搜索的字符串macthes是否是
1
2
3
4
,我考虑过这一点,但感觉是获取所有产品+元(大约100多个产品,每个产品有一吨元)然后,与通过SQL匹配相比,PHP中的进程将减慢执行速度(?)没有通过SQL进行匹配,因为在模式中根本不使用SQL,而是使用键值存储。因此,您必须遵循您选择的相同的键值方法。你知道,一个人不能同时坐在两把椅子上。