我不知道如何解释它,可能是这个例子垃圾查询可以帮助。
SELECT if_exists(Fieldname) * FROM my table name
我只是在Fieldname
字段存在时才尝试选择数据库的所有行。
你能帮帮我吗
答案 0 :(得分:4)
SHOW columns from `yourtable` where field='yourfield'
如果您在该表中没有该字段,您将获得一个空行。
答案 1 :(得分:2)
普通PHP中的以下代码应该可以正常工作:
$chkcol = mysql_query("SELECT * FROM `table_name` LIMIT 1");
$mycol = mysql_fetch_array($chkcol);
if(isset($mycol['column_name']))
$results = mysql_query("SELECT * FROM `table_name`");
else
$results = false;
答案 2 :(得分:0)
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = ‘you_table_name’ AND COLUMN_NAME = ‘FIELDNAME’)
BEGIN
select fieldname from your_table_name
END
答案 3 :(得分:0)
您可以使用SHOW COLUMNS表达式。
我也找到了这个解决方案:http://snippets.dzone.com/posts/show/4663
答案 4 :(得分:0)
你需要这样的东西。抱歉,无法测试语法是否正常。
SELECT * FROM table WHERE EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name=table AND column_name=column)
答案 5 :(得分:0)
这是我使用的查询:如果列不存在,则不返回列。 根据你的需要改变它应该不会有太多工作。
SET @VAR_SQL := Concat('SELECT first_row',CONCAT(IFNULL((SELECT CONCAT(',',COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'my_table'
AND COLUMN_NAME = 'my_column'),'')),' FROM my_table;');
PREPARE QUERY_STATEMENT FROM @VAR_SQL;
EXECUTE QUERY_STATEMENT;