例如,我有一个没有列"类型"的表。但我需要让我的SQL查询具有该列。当我运行查询时出现错误:
SELECT t.foo, t.boo, t.type FROM tabl AS t;
Unknown column 't.type' in 'field list'
我需要像三元运算符这样的东西。我试过这些解决方案,但它们都不起作用:
SELECT f.foo, f.boo, IF(f.type IS NULL, 'x', f.type) AS type FROM tabl AS f
SELECT f.foo, f.boo, (CASE WHEN f.type IS NULL THEN "x" ELSE f.type) AS type FROM tabl AS f
是否有可能实施此类查询?
答案 0 :(得分:2)
使用类似的东西。假设您要连接2个表行,而其中一个表缺少该列:
SELECT t.foo, t.boo, t.type FROM tabl1 as t1
UNION
SELECT t.foo, t.boo, NULL as type FROM tabl2 AS t2;
您可以使用字符串“”或您应用程序所需的任何内容替换NULL。
答案 1 :(得分:1)
不幸的是,这不是列的工作方式。如果您需要内省您的表以确定它是否具有此列,那么您可以尝试使用information_schema中的数据来实现此目的。整体听起来像是一种奇怪的方法。为什么不用这个列创建所有表?
答案 2 :(得分:0)
我认为你的意思是你有一个带有条目的表...你的一些条目没有填写“类型”列。要获得默认值,你需要更改你的表。您可以使用phpmyadmin(设置默认值)或通过SQL代码更改它。
这将是以下几点:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT 'London'
)
默认情况下,每个条目的城市都设置为伦敦