我想知道我是否可以在我的 select 语句中硬编码一个值。我有以下用于生成列表的 mysql 查询。
我使用 concat
来构建这个字符串作为创建列表的一部分。
但是,现在我需要生成一个“未知”记录作为列表的一部分。
例如:
20(ABC Object #20)
24(DEF Object #24)
我想在列表顶部添加值“UKNOWN”:
--(UNKNOWN -- )
20(ABC Object #20)
24(DEF Object #24)
这是我目前所拥有的:
SELECT CAST(p.Serial AS UNSIGNED INTEGER) as Serial,
p.Object_ID,
p.Part_ID,
st.Description AS ObjectDesc,
s.Object_Num,
concat(Serial,' (',st.Desc,' #',s.Object_Num,')') as DropList
FROM Parts p LEFT JOIN Objects s ON p.Object_ID = s.Object_ID
LEFT JOIN ObjectTypes st ON s.ObjectType_ID = st.ObjectType_ID
我可以在我的 select 语句中对该字符串进行硬编码吗?如果是这样,我该怎么做?
最佳答案
如果我没理解错的话,你想要一个新行。你可以使用 UNION
SELECT "" as Serial,
"" as Object_ID,
"" as ObjectDEsc,
"" as Object_Num,
"--(UNKNOWN -- )" as DropList
UNION
SELECT CAST(p.Serial AS UNSIGNED INTEGER) as Serial,
p.Object_ID,
p.Part_ID,
st.Description AS ObjectDesc,
s.Object_Num,
concat(Serial,' (',st.Desc,' #',s.Object_Num,')') as DropList
FROM Parts p LEFT JOIN Objects s ON p.Object_ID = s.Object_ID
LEFT JOIN ObjectTypes st ON s.ObjectType_ID = st.ObjectType_ID
在联合查询中,每个部分必须选择相同的列。由于您的原始查询包括 Serial、Object_ID、Part_ID 和 ObjectDesc,因此第一部分也必须包括它。
关于mysql 在 select 语句中创建一个硬编码值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28282253/