我认为我对SQL Server和MySQL的了解存在冲突 当我运行这个查询时,我总是从MySQL得到一个错误:
If EXISTS (select * from tbl_admin) THEN
select 'OK';
END IF;
错误消息是:
[Err] 1064 - 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在'if EXISTS(select * from tbl_admin)附近使用正确的语法,然后选择'1' - 在第1行选择'1'WHERE EXISTS'
请帮助我,告诉我写这个查询我错了吗?怎么了?
如果我在tbl_admin
表中有某些内容,我想做点什么。
答案 0 :(得分:3)
select 'ok'
from INFORMATION_SCHEMA.tables
where table_name = 'tbl_admin'
要检查表格是否包含数据,您可以执行以下操作:
SELECT 'OK' FROM dual
WHERE EXISTS (SELECT * FROM tbl_admin);
答案 1 :(得分:1)
如果我理解正确,你知道有一张桌子,如果有任何行你只需要一个信息吗? 在这种情况下,我认为这可以解决您的问题:
SELECT
'OK'
FROM
Korisnik
WHERE
EXISTS( SELECT
COUNT(*)
FROM
Korisnik)
LIMIT 1;
您可以使用IF EXISTS
检查存储过程或触发器是否存在。在SELECT查询中,您可以使用WHERE EXISTS
或WHERE NOT EXISTS
http://dev.mysql.com/doc/refman/5.5/en/exists-and-not-exists-subqueries.html
答案 2 :(得分:1)
您可以执行以下操作:
if ( (select count(*) from tbl_admin) > 0) then
...
这会计算表中的所有行。如果没有行,则返回0.
答案 3 :(得分:0)
select if(count(*), 'OK', '') as result from table_name where 1
这将打印" OK"如果有记录存在,则不会显示任何内容。
答案 4 :(得分:0)
select case when count(*) > 0 then 'OK' else 'Empty' end from tbl_admin;
OR
select 'OK' from tbl_admin having count(*) > 0;
答案 5 :(得分:0)
如果你想检查表的存在,那么使用这个
select 'Message' from INFORMATION_SCHEMA.tables where table_name = 'tbl_admin'
因为所有信息都存储在这里.EXISTS在mysql中也可以正常工作。
答案 6 :(得分:-1)
使用普通选择查询..
Select 'OK' from table