次のクエリは自明だと思います。
SELECT IF (SELECT COUNT(*) FROM mytable > 0, 'yes', 'no');
うまくいかないのはなぜですか?また、どのように修正すればよいですか?
次のクエリは自明だと思います。
SELECT IF (SELECT COUNT(*) FROM mytable > 0, 'yes', 'no');
うまくいかないのはなぜですか?また、どのように修正すればよいですか?
サブクエリを括弧で囲みます。
SELECT IF ((SELECT COUNT(*) FROM mytable), 'yes', 'no');
これはあなたが望むものですか?
SELECT IF(COUNT(*) > 0, 'yes', 'no') FROM mytable;
1:
SELECT
t1.*,
(SELECT IF(COUNT(*) > 0, 'yes', 'no') FROM mytable) AS col1
FROM
table t1;
2:
SELECT
t1.*,
t2.*
FROM
table t1,
(SELECT IF(COUNT(*) > 0, 'yes', 'no') AS col1 FROM mytable) t2
クエリがより複雑で、これが問題の軽減に過ぎない場合は、これがより良い解決策だと思います
SELECT IF ( (SELECT COUNT(*) AS counter FROM myTable HAVING counter>0) , 'yes', 'no')
より複雑なチェックを行うことができます (つまり、カウンター > N または複数の条件)
これを試して:
SELECT IF((SELECT COUNT(*) FROM mytable) > 0, 'yes', 'no');