SELECT语句我设置WHERE条件的一部分,在外部配置文件作为参数,就像这样(COL2
充满字符串值):选择其中列表或者选择所有最优雅的
SELECT COL1
,COL2
FROM TABLE1
WHERE COL2 = $external_parameter
现在我有一个更复杂的案例,我需要将外部参数作为列表。只要列表中的值为COL2
,应该选择,但是如果没有提供列表或某种“空”标签,则应再次选择每个值。我想出了一个主意,但它不工作方式:
SELECT COL1
,COL2
FROM TABLE1
WHERE $external_list = ('') or COL2 IN $external_list
与此类似,声明将提供一个空列表时的COL2
所有元素是真实的,真正对列表中的每一个元素如果提供填充列表,则与列表匹配。
但是,如果我提供了一个充满名单也不会在比较的WHERE语句上半年工作:
('entry_a', 'entry_b') = ('')
有任何疑问这将使它的工作 - 最好在一条线哪里声明?
提供不为我的工作,我提供一个列表作为外部参数所有答案,所以它总是来'('entry_a','entry_b')=''',这似乎不适合我。我是否需要以不同的格式在外部参数中提供列表? – aldorado
'WHERE'在$ external_list或COL2 IN $ external_list' – adrianm
这是最适合我的情况的优雅的东西,我想我会使用它。但它不包括有人不小心将列表设置为'('entry_a','entry_b','')'的情况。我需要为此找到一张支票。但我猜想它对我有用。 – aldorado