如何在同一查询中基于布尔值显示或隐藏列?我正在使用的应用程序允许将JavaScript放在双花括号之间,并且布尔值将来自此。
我正在想像这样的解决方案:
SELECT
accounts.email,
IF( {{my JavaScript will return a boolean here}} )
accounts.zip
WHERE accounts.email = 'none@none.com';
如果布尔值是true,则结果将是:
+---------------+-------+
| email | zip |
+---------------+-------+
| none@none.com | 20500 |
+---------------+-------+
如果布尔值是false,结果将是:
+---------------+
| email |
+---------------+
| none@none.com |
+---------------+
这有可能吗?
答案 0 :(得分:0)
您无法动态更改在SQL本身中选择的列;您必须在应用程序级别执行此操作。因此,如果需要遵循现有代码中的模式,则必须使用JavaScript而不是SQL来分配列:
var query =
`SELECT
accounts.email
{ booleanResult ? ', accounts.zip' : '' }
FROM myTable
WHERE accounts.email = 'none@none.com'`
这样,当您的布尔值为true时,您的查询就是SELECT accounts.email, accounts.zip FROM ...
。如果为假,则查询为SELECT accounts.email FROM ...
。