MYSQL选择If Query - WP自定义字段

时间:2015-12-16 07:14:41

标签: php mysql database wordpress forms

我使用的插件允许我从数据库中提取自定义字段值以填充输入字段。该插件是一个计算器表单,它添加了3个自定义字段,每个字段使用我的原始查询分配给输入字段。

现在,如果我使用它作为我的查询,它可以正常工作 -

SELECT meta_value AS value FROM tr_postmeta WHERE meta_key='pa_meta_debt' AND post_id=<%fieldname5%>

但是,如果缺少自定义字段值,则会抛弃我的计算。如果存在,如何选择查询以提取值,如果不给它值0?

这是我正在尝试的查询 -

if (exists (SELECT * FROM information_schema.COLUMNS WHERE TABLE_NAME = 'tr_postmeta' AND COLUMN_NAME = 'pa_meta_debt'))
begin
    SELECT meta_value AS value FROM tr_postmeta WHERE meta_key='pa_meta_debt' AND post_id=<%fieldname5%>
end

虽然不行,但我该怎么修改呢?

2 个答案:

答案 0 :(得分:2)

如果值是数字(或可以转换为数字)查询最多只能返回1行,则使用sum()聚合函数{{1} }或ifnull()。如果您使用coalesce(),那么您的结果集将始终有1行。如果找不到匹配的行,则sum()将返回null,必须使用sum()ifnull()将其转换为0。

coalesce()

您还可以选择不更改查询,也可以在处理代码中处理no row返回状态,或者执行

SELECT coalesce(sum(meta_value),0) AS value
FROM tr_postmeta WHERE meta_key='pa_meta_debt' AND post_id=<%fieldname5%>
先查询

,它会告诉你是否有匹配的记录。如果您的查询可能返回超过1行,我会使用后一种方法。

答案 1 :(得分:-1)

您可以使用此

textViewDidBeginEditing: