我认为我对SQL Server和MySQL的了解有冲突
当我运行这个查询时,我总是从MySQL得到一个错误:
If EXISTS (select * from tbl_admin) THEN
select 'OK';
END IF;
错误消息为:
[Err]1064-您的SQL语法中有一个错误;查看与MySQL服务器版本对应的手册,了解在"if EXISTS(从tbl_admin中选择*)"附近使用的正确语法,然后选择"1"--在第1行选择"1"WHERE EXISTS
请帮帮我,告诉我写这个问题错了吗?怎么了
如果tbl_admin
表中有内容,我想做点什么。
select 'ok'
from INFORMATION_SCHEMA.tables
where table_name = 'tbl_admin'
编辑
要检查表格是否包含数据,可以执行以下操作:
SELECT 'OK' FROM dual
WHERE EXISTS (SELECT * FROM tbl_admin);
如果我理解正确,你知道有一个表,如果有行,你只需要一个信息?在这种情况下,我认为这解决了你的问题:
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
您可以执行以下操作:
if ( (select count(*) from tbl_admin) > 0) then
...
这将统计表中的所有行。如果没有行,它将返回0。
select case when count(*) > 0 then 'OK' else 'Empty' end from tbl_admin;
或
select 'OK' from tbl_admin having count(*) > 0;
如果您想检查表是否存在,请使用此
select 'Message' from INFORMATION_SCHEMA.tables where table_name = 'tbl_admin'
因为所有信息都存储在这里。EXISTS在mysql中也能很好地工作。
select if(count(*), 'OK', '') as result from table_name where 1
如果存在记录,将打印"OK",否则将不显示任何内容。
使用普通的select查询。。
Select 'OK' from table