mysql 在 select 语句中创建一个硬编码值

标签 mysql

我想知道我是否可以在我的 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/

相关文章:

mysql - 我如何使用mysql在where条件下检查像 'Submited'这样的字符串

mysql从其他表中选择列并求和

php - 从 web 服务向 mysql 数据库插入数据时瑞典字符编码失败

java - 运行 Hadoop DbCountPageView.java

mysql - Centos连接mysql时缺少mysql.sock

mysql - AMPPS 无法阻止 MySQL

mysql - MySQL 查询中的 LEFT JOIN

java.sql.SQLException : ResultSet is from UPDATE. 无数据

mysql - 计算列,有没有比我的子查询更好的方法

mysql查询 "SHOW COLUMNS FROM table like ' colmunname'":questions