sql 查询语句 如果字段不存在 怎么使得还能正常查询

时间:2022-12-31 00:08:03
假设表 TEST   字段A,B

查询语句为 SELECT A,B,C FROM TEST 

怎么使得该查询语句不报错,而且C字段可以设置一个默认值  

前提是我事先不知道哪一列没有,就是说有可能A列没有或B列没有 ,因为表是自动创建的,查询语句确是固定的字段。

5 个解决方案

#1


 SELECT A,B,‘C‘ FROM TEST 

#2


没有办法,需要自己在程序中先检查表X中有哪些列,

或者自己下载MYSQL源代码进行修改它的SELECT执行部分。

#3


引用 1 楼 rucypli 的回复:
 SELECT A,B,‘C‘ FROM TEST 


我的业务是自动建的表,如果后面表结构更新了,可能这个字段就存在了,就需要使用查到的值了。 而且很多字段都可能不存在

#4


引用 3 楼 narochids 的回复:
Quote: 引用 1 楼 rucypli 的回复:

 SELECT A,B,‘C‘ FROM TEST 


我的业务是自动建的表,如果后面表结构更新了,可能这个字段就存在了,就需要使用查到的值了。 而且很多字段都可能不存在

业务方更改表结构要和数据方沟通,评估造成的影响,并排期改造,就算sql可以跳过字段检查,但对数据造成的影响绝对不是几段代码能解决的

#5


那你就select  *  from  test  然后在产生的数组中 用isset 判断某个字段 是否存在 

#1


 SELECT A,B,‘C‘ FROM TEST 

#2


没有办法,需要自己在程序中先检查表X中有哪些列,

或者自己下载MYSQL源代码进行修改它的SELECT执行部分。

#3


引用 1 楼 rucypli 的回复:
 SELECT A,B,‘C‘ FROM TEST 


我的业务是自动建的表,如果后面表结构更新了,可能这个字段就存在了,就需要使用查到的值了。 而且很多字段都可能不存在

#4


引用 3 楼 narochids 的回复:
Quote: 引用 1 楼 rucypli 的回复:

 SELECT A,B,‘C‘ FROM TEST 


我的业务是自动建的表,如果后面表结构更新了,可能这个字段就存在了,就需要使用查到的值了。 而且很多字段都可能不存在

业务方更改表结构要和数据方沟通,评估造成的影响,并排期改造,就算sql可以跳过字段检查,但对数据造成的影响绝对不是几段代码能解决的

#5


那你就select  *  from  test  然后在产生的数组中 用isset 判断某个字段 是否存在