我试图检查天气是否存在
IF (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'tb_consumer' AND COLUMN_NAME='businness_id' > 0 ) THEN
PRINT 'test'
上面的sql有什么问题?得到错误
您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以便在#IF; IF附近使用正确的语法(从INFORMATION_SCHEMA.COLUMNS中选择COUNT(*)其中TABLE_NAME =' tb_consu'在第1行
SQL新手。谢谢你的帮助,
MySql的版本是5.X
答案 0 :(得分:3)
您可以通过移动结束表单来修复查询:
IF (SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'tb_consumer' AND COLUMN_NAME = 'businness_id'
) > 0 THEN
PRINT 'test'
编写条件的更好方法是使用exists
:
IF EXISTS (SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'tb_consumer' AND COLUMN_NAME = 'businness_id'
) THEN
答案 1 :(得分:1)
SQL命令不是布尔函数。 因此,您需要检查值。
像这样:
IF (SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'tb_consumer' AND COLUMN_NAME='businness_id') >= 0
THEN PRINT 'test'
答案 2 :(得分:1)
如果您尝试将此作为存储过程的一部分使用,则可以查看the if statement in the mysql documentation
如果您在普通查询中执行此操作,则可以将其写为
SELECT IF (COUNT(*) > 0, 'TEST, 'TEST FAILED') FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'tb_consumer' AND COLUMN_NAME='businness_id'
答案 3 :(得分:1)
我建议在MYSQL中使用CASE语句
SELECT CASE
WHEN COLUMN_NAME = 'businness_id' then 'TEST'
END
from FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'tb_consumer'
小型数据库上的案例陈述更快