我有这样的查询:
SELECT COALESCE(MAX(german),"DEFAULT") from translate_content WHERE english = :englishContent0 UNION ALL
SELECT COALESCE(MAX(german),"DEFAULT") from translate_content WHERE english = :englishContent1 UNION ALL
SELECT COALESCE(MAX(german),"DEFAULT") from translate_content WHERE english = :englishContent2
认为如果找不到值,那么它将返回值" DEFAULT"。我的问题是这个查询在我直接在数据库中运行时工作正常,但是当我在PHP中尝试它时,我得到一个错误说"未定义索引:"德语"。
我正在使用MySQL和PHP 5.5.11。对不起,如果这些信息不够,但我不知道还能提供什么(但是请问,我会交付!)
我应该说明这个专栏&#34;德国&#34;表格中确实存在&#34; translate_content&#34;,我尝试在后面的刻度中封装列名。当我使用COALESCE函数时,似乎只会出现这个问题,但是当我将它复制并粘贴到数据库中时,我不知道它是如何工作的,但是当我直接从PHP运行时却不行:/ < / p>
非常感谢任何帮助,谢谢。
答案 0 :(得分:2)
使用列别名,如
SELECT COALESCE(MAX(german),"DEFAULT") AS Column1
顺便说一句,您的查询可以使用IN
运算符进行修改,如下所示,无需使用UNION ALL
SELECT COALESCE(MAX(german),"DEFAULT") AS some_column
from translate_content WHERE english IN (:englishContent0,:englishContent1,:englishContent2)