1

SQL Server と MySQL に関する知識に矛盾があると思います。
このクエリを実行すると、常に MySQL からエラーが発生します。

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

エラーメッセージは次のとおりです。

[Err] 1064 - SQL 構文にエラーがあります。'if EXISTS (select * from tbl_admin) then select '1' -- select '1' WHERE EXISTS ' at line 1

このクエリの書き方が間違っているので教えてください。どうしたの?
何かあったらやりたい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 EXISTSまたはWHERE 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 'Message' from INFORMATION_SCHEMA.tables where table_name = 'tbl_admin'

すべての情報がここに保存されるため、EXISTS は mysql でも正常に機能します。

于 2012-07-10T09:14:52.253 に答える
0
select if(count(*), 'OK', '') as result from table_name where 1

レコードが存在する場合は「OK」と出力され、そうでない場合は何も表示されません。

于 2012-07-10T08:52:25.933 に答える
-2

通常の選択クエリを使用します。

Select 'OK' from table
于 2012-07-10T08:30:15.870 に答える