我有一个这样的电话簿数据库:
company_name | company_number | company_priority
每次来电时,Asterisk系统中的模块会对该号码运行查询,以检测优先级是什么。
select company_priority from clients where company_number like '%NUMBER%';
根据优先级,它将呼叫路由到不同的路由。
我现在要做的是,是否有任何特殊字符可以放入记录中(是的,而不是在查询中)。像1800 * *
或者,我们可以执行两个不同的查询吗?比如“select * from xx || select * from xx”;
我无法更改变量或查询,因为它内置于模块中。我唯一的另一种选择是撕开模块并在那里进行一些更改。
答案 0 :(得分:2)
你可以,它有效!我也很惊讶!例如:
create table tmp ( a varchar(20) );
insert into tmp values ('%ahoj%'), ('nazdar%');
select * from tmp where 'nazdar ahoj' like a;
+---------+
| a |
+---------+
| %ahoj% |
| nazdar% |
+---------+
所以在你的情况下,你可以填写,例如company_number列中的1080%
用于标识以1080
开头的所有数字。然后使用此查询测试特定的NUMBER:
select company_priority from clients where 'NUMBER' like company_number;