※ ChatGPTを利用し、要約された質問です(原文:SQLが思うように抽出されなくて困っています。)
SQLで抽出できない困りごと | SQLの使い方 | MySQLのJava
このQ&Aのポイント
SQLで抽出したい条件に合わせてパラメータを指定しても、思い通りの結果が得られない問題に困っています。MySQLのJavaで実装しています。
パラメータとしてiPara_food_idとiPara_kind_idを指定し、comment_textがnullまたは空でかつlimit_dateが最大のレコードを1件抽出したいです。
テーブルとソースを見直したり、値やパラメータを変更してみましたが、同じレコードが抽出されます。抽出対象のレコードは、日付が途中くらいでcomment_textが空のものです。なぜパラメータが効かないのでしょうか?
MySQL のJavaです。
パラメータに、iPara_food_idとiPara_kind_idを与え、
1)comment_textが、null か、空っぽで、
2)limit_date が最大、
3)のレコードを1件抽出したいのですが、
String strSQL =
"SELECT record_id, color_id FROM foods"
+ " WHERE"
+ " (food_id = " + 123455/*iPara_food_id*/ + ")"
+ " AND (kind_id = " + 1545334/*iPara_kind_id*/ + ")"
+ " AND (comment_text IS NULL) OR (LENGTH(comment_text) = 0)"
+ " AND (delete_flag = false)"
+ " ORDER BY limit_date DESC"
+ " LIMIT 1";
テーブルとソースを何度も見直したり、
値を変更してみたり、
パラメータの値を変更してみたり、
したのですが、
パラメータに、iPara_food_idとiPara_kind_id。
何を与えても、同じレコードを抽出してきます。
それは、30件ほどのレコードの中で、
日付が途中くらいのもので、comment_text が空の
ものです。
comment_textが空のレコードは、
2件あるのですが、
固定で抽出してくるレコードは、
日付の大きいほうです。
なぜ、パラメータが聞かないのでしょうか?
※上記、思い切って、むちゃくちゃな、数値を
指定していますが、それでも、同じレコードを
抽出してきます。
お礼
ご回答ありがとうございます。 完全に、見落としていました。 初心者とはいえ、絶対にやってはいけない、見落としです。 とても恥ずかしいです。 でも、大変たすかりました。 ありがとうございます。