从别名结果与用户输入相同的数据库查询
query from database where aliases result is same with user input
我想显示用户要从 php.In 数据库(postgres)中搜索的频道,没有 "channel" 列数据库,但我有 "callid" 数据库有a format : CA1235, "CA" 这里表示调用。对于使用不同数据库的选项 Im。这是代码
$VEChan=isset($_POST['vschannel'])?$_POST['vschannel']:'';
$queva=pg_query("SELECT callid,
CASE WHEN callid like '%CA%' THEN 'call' END as channel
from call where channel like '%$VEChan%'
这是错误的。我知道 Column "channel" 永远不会存在于数据库中,因为我在查询中生成它只是为了命名。但是如果我想显示那些与用户选择相同的别名怎么办?通话后将有其他频道。 EM12345 用于电子邮件。 CH12345 用于聊天,SO12345 用于社交媒体。每个都有自己的 id ; emailid,chatid,socid需要过滤。
引用别名的唯一方法(重复表达式除外)是使用派生的 table:
select *
from (
SELECT callid,
CASE
WHEN callid like '%CA%' THEN 'call'
END as channel
from call
) t
where channel like '%$VEChan%';
我想显示用户要从 php.In 数据库(postgres)中搜索的频道,没有 "channel" 列数据库,但我有 "callid" 数据库有a format : CA1235, "CA" 这里表示调用。对于使用不同数据库的选项 Im。这是代码
$VEChan=isset($_POST['vschannel'])?$_POST['vschannel']:'';
$queva=pg_query("SELECT callid,
CASE WHEN callid like '%CA%' THEN 'call' END as channel
from call where channel like '%$VEChan%'
这是错误的。我知道 Column "channel" 永远不会存在于数据库中,因为我在查询中生成它只是为了命名。但是如果我想显示那些与用户选择相同的别名怎么办?通话后将有其他频道。 EM12345 用于电子邮件。 CH12345 用于聊天,SO12345 用于社交媒体。每个都有自己的 id ; emailid,chatid,socid需要过滤。
引用别名的唯一方法(重复表达式除外)是使用派生的 table:
select *
from (
SELECT callid,
CASE
WHEN callid like '%CA%' THEN 'call'
END as channel
from call
) t
where channel like '%$VEChan%';