-1

例如,我有一个没有列“类型”的表。但我需要让我的 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

是否有可能实现这样的查询?

4

3 回答 3

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 替换为字符串 "" 或应用程序所需的任何内容。

于 2013-08-27T16:34:04.673 回答
1

不幸的是,这不是列的工作方式。如果您需要自省表以确定它是否有此列,那么您可以尝试使用 information_schema 中的数据来解决此问题。总的来说,对我来说听起来很奇怪。为什么不直接使用该列创建所有表?

于 2013-08-27T16:31:58.700 回答
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'
)

这会将每个条目的城市默认设置为伦敦

于 2013-08-27T16:39:47.417 回答