- PR -

SQLのWhere句で

1
投稿者投稿内容
かぼ3
会議室デビュー日: 2009/01/16
投稿数: 2
投稿日時: 2009-01-16 17:40
はじめまして。よろしくお願い致します。

JAVAのプログラム上で

"select * from mst_category where (category_name=?) or ('category_' || category_id || '(' || category_name || ')'=?);";

という表記を見つけたのですが、Where句内のOR句の後の意味が分かりません。
どういう意味なのでしょうか?

テーブルにはcategory_idとcategory_nameの二つのフィールドを持ちます。

?の記号の意味については理解しております。わからないのはシングルクォートの意味や、フィールド名が途中までになってたりすることです。

DBはpostgresです。

ご教示よろしくお願い致します。
King
ぬし
会議室デビュー日: 2008/06/20
投稿数: 284
投稿日時: 2009-01-16 17:54
コード:
('category_' || category_id || '(' || category_name || ')'=?)


最初の「'category_'」という部分は文字列です。
「?」に "category_01(AAA)" という文字列が入るとすると
mst_category テーブルにある
category_id が "01"
category_name が "AAA"
のレコードが取得できることになる、
という SQL ではないでしょうか。
かぼ3
会議室デビュー日: 2009/01/16
投稿数: 2
投稿日時: 2009-01-16 18:37
あ!なるほど。"||"は文字列の連結なんですね。
知りませんでした。"又は"の意味で解釈しておりました。orz

ありがとうございました!
1

スキルアップ/キャリアアップ(JOB@IT)