1

我认为我对 SQL Server 和 MySQL 的了解之间存在冲突。
当我运行这个查询时,我总是从 MySQL 收到一个错误:

If EXISTS (select * from tbl_admin) THEN
    select 'OK';
END IF;

错误信息是:

[Err] 1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'if EXISTS (select * from tbl_admin) then select '1' -- select '1' WHERE EXISTS' 附近使用正确的语法

请帮助我并告诉我我在编写此查询时错了吗?怎么了?如果我有东西在桌子上
,我想做点什么。tbl_admin

4

7 回答 7

3
select 'ok'
from INFORMATION_SCHEMA.tables
where table_name = 'tbl_admin'

编辑

要检查表是否包含数据,您可以执行以下操作:

SELECT 'OK' FROM dual
WHERE EXISTS (SELECT * FROM tbl_admin);
于 2012-07-10T08:32:28.743 回答
1

如果我理解正确,你知道有一张桌子,如果有任何行,你只需要一个信息?在那种情况下,我认为这可以解决您的问题:

SELECT 
    'OK'
FROM
    Korisnik
WHERE
    EXISTS( SELECT 
            COUNT(*)
        FROM
            Korisnik)
LIMIT 1;

您可以使用它IF EXISTS来检查存储过程或触发器是否存在。在 SELECT 查询中,您可以使用WHERE EXISTSWHERE NOT EXISTS

http://dev.mysql.com/doc/refman/5.5/en/exists-and-not-exists-subqueries.html

于 2012-07-10T08:39:28.923 回答
1

您可以执行以下操作:

if ( (select count(*) from tbl_admin) > 0) then
    ...

这会计算表中的所有行。如果没有行,它将返回 0。

于 2012-07-10T08:46:46.860 回答
0
select if(count(*), 'OK', '') as result from table_name where 1

如果存在记录,这将打印“OK”,否则将不显示任何内容。

于 2012-07-10T08:52:25.933 回答
0
select case when count(*) > 0 then 'OK' else 'Empty' end from tbl_admin;

或者

select 'OK' from tbl_admin having count(*) > 0;
于 2012-07-10T08:56:11.590 回答
0

如果你想检查表的存在然后使用这个

 select 'Message' from INFORMATION_SCHEMA.tables where table_name = 'tbl_admin'

因为所有信息都存储在这里。EXISTS 在 mysql 中也可以正常工作。

于 2012-07-10T09:14:52.253 回答
-2

使用正常的选择查询..

Select 'OK' from table
于 2012-07-10T08:30:15.870 回答