質問: たびたびお世話になってます。 javascriptを使ったアプリの開発でつまずいています。 javascript から MySQLへselect文を投げた後で、その結果によって次のアクションを分けたいのですが、sekect文で該当するデータが存在しない場合、当たり前ですが結果を代入する変数がundefinedになってしまいます。 select文を投げた後、存在しない場合、特定の文字列や数字またはNULLなんかを返す方法はありますでしょうか? なければ、もう一つテーブルを作ってそちらを参照することになりますよね。
回答: 他の質問を見るとNode.jsを使用されているようですが、Stackoverflowにあった同様の質問の回答を見ると、結果セットのlengthが0かどうかで確認できそうです。 ``` connection.query(sql, [var1,var2], function(err, results) { numRows = results.length; }); ``` find number of rows in returned mysql result (nodejs) DBMSによっては結果0件のエラーコードを返すのでそれを確認する方法がありますが、MySQLのER_SP_FETCH_NO_DATAはどうもストアドプロシージャの場合しか返らないようです。 なお、事前にCOUNT(*)で確認する方法がとられることもありますが、性能面で問題が出る場合があるのでお勧めしません。