【发布时间】:2016-09-21 19:30:22
【问题描述】:
下面是我用来从我的一个表中选择多个列的查询。 我从用户那里获取列名以从表中进行选择。 如果用户提供了错误的列名,则会显示未知列错误。在选择之前如何检查该列是否存在于表中?
SELECT `address_id`,`address_firstname`,` afserfw`
FROM `patsm_addresstable`
WHERE `address_id`='28'
LIMIT 0, 25
这将给出以下错误:
#1054 - Unknown column ' afserfw' in 'field list'
【问题讨论】:
-
为什么用户要定义要选择的列?这个查询的目的是什么?或者,为用户提供一个选择下拉列表中存在的列
-
show columns from tablename;将为您提供列列表。您必须在发送查询之前进行检查(或者只执行查询并返回此错误,它可能与先检查字段列表然后返回手动错误(如Unknown column ' afserfw')自己的效果相同。)您无法在查询内部进行检查如果查询要使用的列存在(例如,您不能使用if exists column afserfw then afserfw else null) -
嗨,马特,它应该是用户定义的,因为用户可以创建自定义字段。对于我的要求,我希望用户的手机号码发送一些通知消息。无需在下拉列表中显示所有字段,并且移动字段没有任何特定标识来单独获取它们。谢谢你
-
感谢您宝贵的 cmets Solflare。
标签: mysql if-statement select