Mysql 如果表中没有这样的列,如何选择一些默认值?
例如,我有一个没有列“type”的表。但是我需要让我的sql查询具有该列。运行查询时,我得到一个错误:Mysql 如果表中没有这样的列,如何选择一些默认值?,mysql,sql,Mysql,Sql,例如,我有一个没有列“type”的表。但是我需要让我的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 S
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
有可能实现这样的查询吗?不幸的是,这不是列的工作方式。如果需要内省表以确定表中是否有此列,则可以尝试使用信息模式中的数据来获取此列。总的来说,我觉得这是一种奇怪的方法。为什么不创建包含此列的所有表呢?使用类似的方法。假设要联接两个表行,但其中一个缺少列:
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。我想您的意思是,您有一个包含条目的表。。。您的某些条目没有填写“类型”列。要使用默认值,您需要更改表。您可以使用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'
)
这会将每个条目的城市默认设置为伦敦为什么要尝试查询不存在的列?我的系统的设计需要“类型”列。但有时我得到的表没有“type”列。因此,在这种情况下,我希望有一些默认值。在这种情况下,在您的设计中有一个基本的缺陷<代码>为什么不使用此列创建所有表?好主意,谢谢。我想的方向不同,不完全是这样。我的一些表根本没有列“type”。我知道如何在列上设置默认值。不过,谢谢你。