如果我的过滤器是111,如果下面的两列如何选择行110-118? 100-118是因此111落在100-118之间的范围
onItemRendered: function(args){
if(args.itemData.isSelected) {
args.itemElement.css("color", "green");
}
}
答案 0 :(得分:2)
下面是一个简单的示例,说明如何使用子查询在SQL中执行此操作以获取开始和结束范围。这可以扩展为更好地处理解析字符串值。
Declare @Temp TABLE
(
Dest_Zip varchar(7),
Ground varchar(3)
)
INSERT INTO @Temp VALUES ('004-005','003')
INSERT INTO @Temp VALUES ('068-089','002')
INSERT INTO @Temp VALUES ('100-118','001')
SELECT A.Dest_Zip, A.Ground FROM
(
select
Convert(int, SUBSTRING(Dest_Zip,1,3)) StartNum,
Convert(int, SUBSTRING(Dest_Zip,5,3)) EndNum,
*
from @Temp
) AS A
WHERE 111 >= A.StartNum AND 111 <= A.EndNum
答案 1 :(得分:0)
修复数据。这是一种使用计算列的简单方法(假设&#34;拉链&#34;总是3个字符):
alter table t
add column minzip as (left(dest_zip), 3),
add column maxzip as (right(dest_zip), 3);
然后,您可以将查询运行为:
select t.*
from t
where '111' between t.minzip and t.maxzip;
您甚至可以在计算列上创建索引,这可以帮助提高性能(尽管在这种情况下并不多)。
答案 2 :(得分:0)
如果你想在php中进行检查,也许这个示例代码可以帮助你:
<?php
$my_string = "111";
$foo = "100-118"; // our range
$bar = explode('-', $foo); // Get an array .. let's call it $bar
// Print the output, see how the array looks
//print_r($bar);
//echo $bar[0].'<br />';
//echo $bar[1].'<br />';
if(($bar[0] <= $my_string ) AND ($bar[1] >= $my_string)){ echo 'true';} else { echo 'false';}
?>